我怎樣才能在dojo中調用另一種方法的父方法。 考慮下面的例子:如何在dojo中調用另一種方法的父方法
var parent = declare(null,{
m1: function(arg){
console.log("parent.m1");
},
m2: function(arg){
console.log("parent.m2");
}
});`enter code here`
var child = declare(parent,{
m1: function(arg){
console.log("child.m1");
// how can i call parent.**m2** here directly without calling child.m2
},
m2: function(arg){
console.log("child.m2");
}
});
我怎樣才能直接調用parent.m2從child.m1沒有在所有
調用child.m2現在假設我定義了兩個模塊,如下所示:
parentModule.js
var parent = declare(null,{
m1: function(arg){
console.log("parent.m1");
},
m2: function(arg){
console.log("parent.m2");
}
});
return declare("ParentModule",[parent,child]);
//******************************************//
childModule.js
return declare("child",null,{
m1: function(arg){
console.log("child.m1");
// how can i call parent.**m2** here directly without calling child.m2
//if we call ParentModule.prototype.m2.call(this,arguments); this will call child.m2
//as child module override the parent now
//also calling this.getInherited("m2",arguments); will call child.m2 !!!
//how to fix that?
},
m2: function(arg){
console.log("child.m2");
}
});
我很困惑你的層次結構。爲什麼父母延長孩子?難道不是相反嗎?我發佈了一個jsfiddle,展示了我認爲你應該如何定義你的模塊。 – 2013-03-06 21:23:37