次のテストを作成しましたが、なぜ機能しないのかわかりません:http: //jsfiddle.net/SKphY/。「こんにちは」と「さようなら」と「さようなら」の3つのアラートダイアログが表示されるはずです。代わりに、最初の2つだけを取得しています。
var p = {
hello : function() {
alert('hello');
}
};
var obj1 = Object.create(p, {
goodbye : function() {
alert('goodbye');
}
});
var obj2 = $.extend(p, {
goodbye : function() {
alert('goodbye');
}
});
$(function() {
// The third line (below) gives the parser error:
// 'Uncaught TypeError: Property 'goodbye' of object #<Object>
// is not a function'
obj1.hello();
obj2.goodbye(); // This executes fine
obj1.goodbye(); // This gives the parser error
});
重要なのは、オブジェクトの継承、この場合はオブジェクトリテラルの操作方法を学んでいることです。また、Object.createではなくjQuery.extendを使用すると、なぜそれが機能するのか興味があります。私の知る限り、https: //developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/createで概説されているアプローチに従っているようです。私は何が間違っているのですか?
お時間をいただきありがとうございます、ktm。