[英]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.