0
我有了多種方法JavaScript對象:JavaScript對象裝飾
var actualObject = {
foo: function(){},
bar: function(){},
…
}
然而,我希望人們用實際對象是proxy
。它應該將其所有呼叫轉移到actualObject
。最簡單的方法是將actualObject
分配給proxy
。
proxy = actualObject;
但是,對於某些方法,我希望代理具有附加功能。
proxy.bar = function(arguments) {
console.log('do something beforehand');
actualObject.bar(arguments);
console.log('do something afterward');
}
的問題是,如果proxy
和actualObject
是相同的,此重寫棒法將導致遞歸。因此,我的問題是:克隆JavaScript對象的最「習慣」方式是什麼,但是以某種方式覆蓋某些方法,從而允許從最重要的方法中調用原始方法?
你可以有'actualObject'爲原型,爲你的'proxy'。然後,'proxy'可以通過在'proxy'上定義它來覆蓋原型的任何屬性。 – MinusFour
完美的作品!你應該發佈一個答案,以便我可以接受它。 – arik