私は自分のアプリケーション上で使用することを定義したクラスを持っています。クラスのすべてのインスタンスのメソッドのいくつかをオーバーライドして変更したいページが1つあります。説明するコードがいくつかあります。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を入れてからmy-script-jを変更すると表示されます:
var test = new MyClass();
test.bar() === 8; //true
私が抱えている問題は、MyClass.implementがMyClassのすべてのインスタンスに適用されますが、メソッドを「オーバーライド」せずに置き換えられることです。したがって、そのメソッドの親がないので、this.parent()呼び出しは失敗します。私がMyClass.extendを行う場合、それは私の望むようには適用されませんし、上書きされたメソッドを呼び出すMyClassのインスタンスは表示されません。
+1 for class.refactor –
Class.refactorは私が探していたものです –