我已经建立了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