Я построил класс в Mootools и расширить его в два раза, так что есть прародитель, родитель, и ребенок отношение:Как получить эту функцию .grandparent() в Mootools?
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
, ребенок, мне нужно вызвать метод doSomething()
из Class1
, то grandparent, без выполнения какого-либо кода в Class2#doSomething()
, родитель.
Что мне нужно, это метод grandParent()
в дополнение к Mootools parent()
, но, похоже, его не существует.
Каков наилучший способ сделать это в Mootools или в чистом JavaScript? Благодарю.
UPDATE:
Я должен отметить: я понял, что плохой дизайн оставил меня задать этот вопрос в первую очередь. Смешивание было бы идеальным, но я унаследовал код и не имел времени для рефакторинга на данный момент.
Спасибо за предложение mixin. Это будет работать для меня, однако, я работаю с большим количеством существующего кода, который оставляет желать лучшего, и рефактору потребуется больше времени, чем я готов дать его в данный момент. Я обязательно буду обновлять эту тему с помощью решения, которое я должен найти. –
круто, я спросил об этом irc и получил некоторые идеи, ответьте обновленным –