Proxy数据代理基本实现

<!DOCTYPE html>
<html>
<body>
   <h2>1111</h2>
   <script type="text/javascript">
      const user = {
         name:'鸣人',
         age:8,
         wife:{
            name:'佐助',
            age:20
         }
      }
      // 把目标对象转为代理对象
      // proxy(x,y)
      // x:参数1,target目标对象
      // y:参数2,处理器对象,用来监视数据变化及数据的操作
      const proxyUser = new Proxy(user,{
         get(target,prop){
            console.log('get方法调用了');
            return Reflect.get(target,prop) // 返回get方法
         },
         set(target,prop,val){
            console.log('set方法调用了');
            return Reflect.set(target,prop,val)// 返回get方法
         },
         deleteProperty(target,prop){
            console.log('delete方法调用了');
            return Reflect.deleteProperty(target,prop)
         }
      })
      console.log(proxyUser.name);// 调用代理对象的get
      proxyUser.name='小樱'
      console.log(user)
      proxyUser.sex=''// 除了用set修改值也可以用set添加新属性-值
      console.log(user)
   </script>
</body>
</html>

 

posted @ 2022-05-02 13:50  幻影之舞  阅读(179)  评论(0)    收藏  举报