标签: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