[英]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');
}
問題是,如果proxy
和actualObject
相同,則此覆蓋的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.