标签:lse replace code content none get name upload es6
Proxy代理,Reflect反射
Proxy对属性的读取
{ //供应商,原始对象 let obj={ time:‘2017-1-1‘, name:‘net‘, _r:123 } //代理商,新生成一个Proxy对象,将要代理的对象放进去,后面是实现代理的方法 let monitor=new Proxy(obj,{ //拦截对象属性的读取 get(target,key){ return target[key].replace(‘2017‘,‘2016‘)//将读取到的2017全部替换成2018 } }) //拦截对象设置属性,target是前面的object对象,key是要修改属性,value是值 set(target,key,value){ if(key==‘name‘) { return target[key]=value;//新的value值赋给找的的属性key,再赋给Object对象 }else{ return target[key]; } } console.log(‘get‘,monitor.time) //从monitor中读取time //monitor.time monitor.time=‘2018‘; monitor.name="xxxxx"; console.log(‘set‘,monitor,obj); }
通过读和写操作就可以做很多事了
这样的操作甚至可以起到欺骗作用
这样是删除操作
标签:lse replace code content none get name upload es6
原文地址:https://www.cnblogs.com/ellen-mylife/p/10846459.html