ES6 proxy代理
代理 proxy
-
定义代理: 通过new关键字创建对象的代理
-
target 代理对象
-
property 当前属性
-
value 修改的内容
new Proxy(要代理的对象,{ // 获取之前加一些处理 get(target,property){...//}, // 设置值加一些处理 set(target,property,value){...//}, // 暴露的key (可访问) ownKeys(){return[]} ownKeys(){return ["name"]}, //has(target,property){}用于是判断是否含有指定的键值对,有,就返回true。否则返回false。 has(target,property){ if (target[property] == undefined) { return false; } else { return true; } },}})
-
可解除的代理 Proxy.revocable(对象,{})
-
声明 let proxy = Proxy.revocable()
-
使用 proxy.proxy.属性
-
取消 proxy.revoke()
-
apply 方法 用于函数代理
1 function fn1() { 2 console.log('我是jiu函数,被代理le'); 3 } 4 5 const proxy = new Proxy(fn1, { 6 apply(target) { 7 console.log('我代理了旧函数'); 8 target(); 9 } 10 })