Proxy对象代理

Proxy 对象用于创建一个对象的代理,从而实现基本操作的拦截和自定义(如属性查找、赋值、枚举、函数调用等)。

基本模型:

const person = {
  name: "superMan",
};

const proxy = new Proxy(person, {
  get(target, property, receiver) {
    console.log(`正在获取 ${property} 属性`);
    return target[property];
  },
});

console.log(proxy.name);

这里注意的是一定要调用proxy这个变量,才会生效。

结果如下:

 改进型

catvm={};
catvm.proxy=function (o) {
    if (catvm.memory.config.proxy==false){return o};
    return  new Proxy(o,{
      set(target,property,value)
      {
       catvm.memory.DataDemo({"类型":"set-->","调用者":target,"属性":property,"值":value});
      //console.table([{"类型":"set-->","调用者":target,"属性":property,"值":value}]);
      //console.log("类型set-->"+"调用者:"+target+"属性:"+property+"值:"+value);
      return Reflect.set(...arguments);
      },
      get(target,property,receiver)
      {catvm.memory.DataDemo({"方式":"get<--","调用者":target,"属性":property,"值":target[property]});
      //console.table([{"方式":"get<--","调用者":target,"属性":property,"值":target[property]}]);
      return target[property];
      }
  });
};
//代理对象如下
catvm.proxy(o);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值