es6 Proxy对象的一丢丢

  首先说下他是啥,官网介绍: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对象的一丢丢)