1
我想裝飾一個JavaScript「類」的功能(原型):JavaScript的原型:更換功能
SomeClass = function() { this.someVar = 5; };
SomeClass.prototype = {
foo: function(arg) { /* do something with this.someVar */ }
}
但是,我不能改變的SomeClass
的來源,也不是我能影響的實例創建的SomeClass
實例。
所以我想過做以下幾點:
var oldFoo = SomeClass.prototype.foo;
SomeClass.prototype.foo = function(arg) {
console.log("Yey, decorating!");
oldFoo(arg);
};
這似乎很好地工作,但是,由於函數的範圍,oldFoo
無法訪問someVar
了(在this
對象現在是window
)。如何解決這個問題?