码迷,mamicode.com
首页 > 其他好文 > 详细

es6——Proxy和Reflect

时间:2019-05-10 20:32:38      阅读:148      评论:0      收藏:0      [点我收藏+]

标签: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);
}

技术图片

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

技术图片

技术图片

技术图片

 

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

技术图片

技术图片

技术图片

这样是删除操作

 

es6——Proxy和Reflect

标签:lse   replace   code   content   none   get   name   upload   es6   

原文地址:https://www.cnblogs.com/ellen-mylife/p/10846459.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!