【发布时间】:2012-06-10 23:42:13
【问题描述】:
我正在尝试扩展一个对象,我想修改第一个方法,而不是覆盖它。我不认为这很清楚,所以这里是一个例子:
var object1 = {
whatever : function(){
console.log('first object method');
}
}
var object2 = {
whatever : function(){
console.log('second object method');
}
}
var object = $.extend(true, object1, object2);
object.whatever();
这个例子会输出second object method,但我想要的是输出first object method和second object method。
有没有办法做到这一点?
【问题讨论】:
-
这就是示例显示的内容:当您在两个对象中定义两个具有相同名称的方法时,第一个不会被触发。我想要 PHP 中的
parent::whatever()之类的东西 -
虽然 JS 没有调用超类的内置方式,但您可以使用 here 描述的技术来实现。
-
不,
extends没有“扩展”功能,这不是它的设计初衷。 -
$.extend不能那样工作。它只是在有重复项时替换属性。
标签: javascript jquery oop