我有一个类,我已经定义了我在整个应用程序中使用的类。我有一个页面,我希望改变这个类的所有实例的一些方法。这里有一些代码来说明。有条件地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,然后更改-myclass-script.js,我应该看到:
var test = new MyClass();
test.bar() === 8; //true
我遇到的问题是MyClass.implement适用于MyClass的所有实例,但它不会“覆盖”该方法,它将替换它。所以this.parent()调用失败,因为该方法没有父对象。如果我做MyClass.extend它不适用像我想要的,我看不到MyClass的实例调用重写的方法。
是什么呢? – 2011-01-23 03:17:30
它将该函数应用于类本身,而不是其对象实例。 – 2011-01-23 06:22:25