es6 Proxy对象

2:Proxy概念(阮一峰 es6      Proxy可以理解成,在目标对象之前架设一层“拦截”,外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤和改写。Proxy 这个词的原意是代理,用在这里表示由它来“代理”某些操作,可以译为“代理器”。)

  es6提供了Proxy构造函数 new Proxy(target,handler) 调用。可以接受俩个参数 target 目标对象,handler参数也是一个对象,用来定制拦截行为。

  例:

  var a = { name: 'lxy' }   

  var b = new Proxy(a,{

   set: function (target,key){    // set是当设置这个属性的时候触发的拦截器 。target目标对象  , key键值   ,(还可以接受一个参数就是 proxy 实例本身(严格地说,是操作行为所针对的对象 摘自 阮 es6)

     if(target[key] == 'lxy'){
        console.log("设置属性啦!")
      }       
    },
    get: function (target,name,value){  // 依次为目标对象、属性名、属性值和 Proxy 实例本身,(还可以接受一个参数就是 proxy 实例本身(严格地说,是操作行为所针对的对象 摘自 阮 es6

      if(target[name]){
        console.log("拥有此属性");
      }else console.log("并没有" +name+  "此属性"  );

    }
  })

  b.name = 1   // 设置属性啦!
  b.name  //    
拥有此属性

  b.nam  //并没有nam此属性

posted @ 2018-04-09 15:30  xyyyy  阅读(144)  评论(0编辑  收藏  举报