ES6新增的代理(Proxy)

在一个系统中,总要在一个对象中,存储一些数据,对于这些数据,可能有一些是希望我们访问的,但是总有一些是重要的,不希望被访问,希望保护起来,因此ES6新增了代理,实现这一特征

语法 通过Proxy实现:

  new Proxy(obj, {set, get})

    第一个参数:obj表示被代理的对象

    第二个参数:{set, get}表示操作被代理对象的对象

      操作被代理对象的set方法:

        get(obj, key) 表示取值方法:

          obj 表示被代理的对象

          key 表示获取的属性

      返回值很重要:就是获取的数据 this指向操作对象

      注意:绝对不能获取代理对象(proxy)的key属性

      操作被代理对象的set方法:

        set(obj, key, value) 表示赋值方法

          obj 表示被代理的对象

          key 表示修改的属性

          value 表示修改的属性值 this指向操作对象 不需要返回值

      注意:绝对不能在里面修改代理对象(proxy)的key属性

      

代理跟特性很像

    特性是对同一个对象的操作,数据不能在当前属性下存储,存储在备份中

    代理是对不同的对象的操作,数据可以直接存储在当前属性下,原对象属性没有发生改变

原文地址:https://www.cnblogs.com/yess/p/14702121.html