Мне нужно переопределить некоторые функции-члены, добавленные mixin из сторонней библиотеки. Проблема в том, что миксин используется сразу в нескольких определениях сторонних классов в том же файле сценария, где определен миксин. И я могу только вставить собственный код до или после этого скрипта, но не между ними. Если после этого я вызову override
, то уже определенные классы не получат мою функцию в цепочке вызовов.
// library script BEGIN
Ext.define('Foo.bar.Base', {
});
Ext.define('Foo.bar.Util', {
newmember: function() {
console.log('newmember');
}
});
Ext.define('Foo.bar.Derived', {
extend: 'Foo.bar.Base',
mixins: {
fooutil: 'Foo.bar.Util'
}
});
// library script END
Foo.bar.Util.override({
newmember: function () {
console.log('newmember2');
this.callParent();
}
});
var obj = new Foo.bar.Derived();
obj.newmember();
Фактический вывод:
newmember
Требуемый вывод:
newmember2
newmember