看起来这个问题很受欢迎,但没有jQuery版本。
我有两个类,第二个类从第一个扩展。
扩展方法is copied from here。
function UIButton(o){
if (typeof(o) != 'undefined') $.extend(true, this, o);
this.setOutput=function(divname){
alert("first");
}
}
function UIButton2(o) {
if (typeof(o) != 'undefined') $.extend(true, this, o);
this.setOutput=function(divname) {
alert("second");
}
return new UIButton(this);
}
第二个对象的方法应该使用$.extend()
覆盖第一个对象的方法(具有相同的名称)。
但是我在html中检查它,发现第一个对象的功能仍然很好用。 (Alert“first”...)这使得它的子类无法覆盖该函数。
所以我想问一下,这是怎么发生的以及如何解决它。我想提醒“第二次”......
答案 0 :(得分:1)
首先扩展,然后设置新的setOutput
(,以便覆盖扩展方法)。
如果您更改订单,它将起作用..
function UIButton(o){
this.setOutput=function(divname){
alert("first");
}
if (typeof(o) != 'undefined') $.extend(true, this, o);
}
function UIButton2(o) {
this.setOutput=function(divname) {
alert("second");
}
if (typeof(o) != 'undefined') $.extend(true, this, o);
return new UIButton(this);
}
(仅在此示例的UIButton
中需要,但我将其添加到两者以供将来使用)
答案 1 :(得分:0)