У меня есть определенный класс, который я использую во всем приложении.У меня есть одна страница, где я хотел бы изменить некоторые методы во всех экземплярах класса.Вот некоторый код для иллюстрации.
myclass-script.js
var MyClass = new Class({
foo: function() {
return 1;
},
bar: function() {
return this.foo() + 9;
},
});
change-myclass-script.js
MyClass.implement({
foo: function() {
return this.parent() * -1;
},
});
Если я включу на страницу myclass-script.js я должен увидеть:
var test = new MyClass();
test.bar() === 10; //true
Если я включу myclass-script.js, а затем change-myclass-script.js, я должен увидеть:
var test = new MyClass();
test.bar() === 8; //true
Проблема Iу меня есть то, что MyClass.implement применяется ко всем экземплярам MyClass, но он не "переопределяет" метод, он заменяет его.Таким образом, вызов this.parent () завершается неудачно, потому что для этого метода нет родителя.Если я делаю MyClass.extend, он не применяется так, как я хочу, и я не вижу экземпляров MyClass, вызывающих переопределенный метод.