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 })

 

posted @ 2020-09-04 10:46  帅气巴巴  阅读(160)  评论(0编辑  收藏  举报