美文网首页
es6 Proxy对象的一丢丢

es6 Proxy对象的一丢丢

作者: 甘道夫老矣 | 来源:发表于2019-08-22 13:37 被阅读0次

      首先说下他是啥,官网介绍:Proxy 用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种“元编程”(meta programming),即对编程语言进行编程。Proxy 可以理解成,在目标对象之前架设一层“拦截”,外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤和改写。Proxy 这个词的原意是代理,用在这里表示由它来“代理”某些操作,可以译为“代理器”。
      简单点说:proxy在目标对象的外层搭建了一层拦截,外界对目标对象的某些操作,必须通过这层拦截

     // new Proxy()表示生成一个Proxy实例,target参数表示所要拦截的目标对象,handler参数也是一个对象,用来定制拦截行为
        //var proxy = new Proxy(target, handler);
        var  target={
                name:"es6高级语法",
                type:"重点是..."
            }
        //假如目标对象是target,hander是我要怎么处理这个对象设置的机关方法,即
        var handler = {
            //假如我让在获取name的时候得到的数据不是“es6高级语法”而是“es6入门”
            get: function(target, key) {
               if(key=="name"){
                target[key]="es6入门"
               }
               return  target[key];
            },
            set: function(target, key, value) {
                if (key !== 'type') {
                        target[key] = value;
                }else {
                console.log('不能对[' + key.toString() + ']赋值.');              
                }
            }
        }
        var proxy = new Proxy(target, handler);
        proxy.type="改下属性"//不能对type赋值.
        
    

    相关文章

      网友评论

          本文标题:es6 Proxy对象的一丢丢

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