proxy

作者: Rui___ | 来源:发表于2019-11-05 15:20 被阅读0次

    代理 我们可以创造一个代理 帮我们干某些事
    优点:比defineProperty性能高10倍
    缺点:兼容性很差 ie11 以上

    // proxy 兼容性差
    // 代理 我们可以创造一个代理 帮我们干某些事
    // proxy 兼容性差
    // 代理 我们可以创造一个代理 帮我们干某些事
    let obj = {
        a:{a:2}
    }
    let arr=[1,2]
    let handler = { // 只能代理当前这个对象 1层
        get(target,key){ // 有13中属性 symbol 11种
            // return target[key]
            if(typeof target[key] === 'object'){
                return new Proxy(target[key],handler); // 如果是对象 就返回这个对象的代理 多层对象  proxy.a 会先走get方法
            }
           return Reflect.get(target,key);
        },
        set(target,key,value){ // Reflect 反射属性13种用法
            // target[key] = value;
            if(key === 'length') return true;
            console.log('update');
            return  Reflect.set(target,key,value);
        }
    }
    // 对象
    let proxy = new Proxy(obj,handler);
    // 支持数组 可以直接更改数组 达到拦截的目的
    let proxyArr = new Proxy(arr,handler)
    proxyArr.push(66)
    console.log(arr)
    // proxy.a.a = 100
    // console.log(obj.a.a);
    

    相关文章

      网友评论

          本文标题:proxy

          本文链接:https://www.haomeiwen.com/subject/prrtbctx.html