我创建了以下测试,但不确定为什么它不起作用:http: //jsfiddle.net/SKphY/。我应该得到三个警报对话框:“你好”、“再见”和“再见”。相反,我只得到前两个。
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
});
关键是我正在学习如何使用对象继承,在这种情况下使用对象文字,我很好奇为什么当我使用 jQuery.extend 时它对我有用,而不是使用 Object.create。据我所知,我似乎遵循了https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/create中概述的方法。我究竟做错了什么?
谢谢你的时间,ktm。