我已經建立了MooTools的一類,並延長了兩次,這樣是有祖父母,父母和子女的關係:如何在Mootools中獲得this.grandparent()功能?
var SomeClass1 = new Class({
initialize: function() {
// Code
},
doSomething: function() {
// Code
}
});
var SomeClass2 = new Class({
Extends: SomeClass1,
initialize: function() {
this.parent();
},
doSomething: function() {
this.parent();
// Some code I don't want to run from Class3
}
});
var SomeClass3 = new Class({
Extends: SomeClass2,
initialize: function() {
this.parent();
},
doSomething: function() {
this.grandParent();
}
});
從Class3
,孩子,我需要從Class1
調用doSomething()
法,祖父母,而不執行Class2#doSomething()
父母的任何代碼。
我需要的是grandParent()
方法來補充Mootools parent()
,但它似乎不存在。
在Mootools或純JavaScript中完成此操作的最佳方法是什麼?謝謝。
UPDATE:
我應該提到:我意識到,不良設計已經離開我,要問在首位這個問題。一個mixin將是理想的,但我繼承了代碼,並沒有時間進行重構。
感謝您的mixin建議。這對我很有用,但是,我正在處理大量現有的代碼,這些代碼有點不盡人意,重構需要的時間比我目前願意付出的時間要多。 我一定會更新此線程與解決方案,如果我找到一個。 – 2010-06-07 06:48:49
酷,我問irc有關它,並得到了一些想法,回答更新 – 2010-06-07 14:18:56