У меня есть класс, который я определил для использования во всем приложении. У меня есть одна страница, где я бы хотел изменить переопределить некоторые методы во всех экземплярах класса. Вот несколько примеров для иллюстрации.JavaScript метод переопределения класса условно
MyClass-script.js
var MyClass = new Class({
foo: function() {
return 1;
},
bar: function() {
return this.foo() + 9;
},
});
переключающий 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
Проблема, с которой я сталкиваюсь, заключается в том, что MyClass.implement применяется ко всем экземплярам MyClass, но не «переопределяет» метод, а заменяет его. Таким образом вызов this.parent() завершается с ошибкой, потому что для этого метода нет родителя. Если я делаю MyClass.extend, он не применяется, как я хочу, и я не вижу экземпляров MyClass, вызывающих переопределенный метод.
+1 для class.refactor –
Class.refactor именно то, что я искал –