簡體   English   中英

JavaScript對象裝飾器

[英]JavaScript Object Decorator

我有一個具有多種方法的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');
}

問題是,如果proxyactualObject相同,則此覆蓋的bar方法將導致遞歸。 因此,我的問題是:克隆JavaScript對象但以允許從覆蓋對象中調用原始方法的方式覆蓋某些方法的最“慣用”方法是什么?

有一個proxy原型是actualObject然后在proxy定義函數:

var proxy = Object.create(actualObject);

proxy.bar = function(arguments) {
    console.log('do something beforehand');
    actualObject.bar(arguments);
    console.log('do something afterward');
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM