es6——Proxy和Reflect

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);
}

通过读和写操作就可以做很多事了

这样的操作甚至可以起到欺骗作用

这样是删除操作

猜你喜欢

转载自www.cnblogs.com/ellen-mylife/p/10846459.html