Javascript 如何在ES5中实现代理
让我们有以下代码段:Javascript 如何在ES5中实现代理,javascript,ecmascript-5,Javascript,Ecmascript 5,让我们有以下代码段: var obj = {}; obj.doSomething = function(){ console.log("Hello from obj"); } 我想为这个对象创建一个代理,每次调用obj中的任何方法时,执行其他操作,然后调用实际的obj方法。 假设我希望代理打印消息“从对象[object]调用[methodname]” 例如: obj.doSomething(); 输出: Calling [doSomething] method f
var obj = {};
obj.doSomething = function(){
console.log("Hello from obj");
}
我想为这个对象创建一个代理,每次调用obj
中的任何方法时,执行其他操作,然后调用实际的obj
方法。
假设我希望代理打印消息“从对象[object]调用[methodname]”
例如:
obj.doSomething();
输出:
Calling [doSomething] method from object [obj].
Hello from obj
如何在ES5中实现这一点?您可以使用内置JavaScript代理对象,如下所示:
var obj={};
obj.doSomething=函数(){
log(“来自obj的你好”);
}
常量处理程序={
获取:函数(目标、道具){
log(`Calling[${prop}]from object[${target}`);
目标[道具]();
}
};
const proxy=新代理(obj,handler);
proxy.doSomething
我建议您根据自己的需要以及ES5的语法检查、修改apply()
之前的行