我想修改外部庫的原型函數,以便在調用函數之前執行某些代碼。我雖然克隆該功能,然後通過一個新的像這樣替換它:Javascript - 克隆原型函數
請注意,我用another question
發現克隆功能這是一個簡單的例子:
var oldFunction = anObject.aFunction.clone();
anObject.aFunction = function(a, b, c) {
if (a > b) {
return;
} else {
oldFunction(a, b, c);
}
}
Function.prototype.clone = function() {
var that = this;
var temp = function temporary() { return that.apply(this, arguments); };
for(var key in this) {
if (this.hasOwnProperty(key)) {
temp[key] = this[key];
}
}
return temp;
};
但是,這樣做,oldFunction
似乎失去了其原始參考this
。
有沒有解決方案?