ES6 用proxy進行預處理
阿新 • • 發佈:2018-09-15
調用 receive set 執行 add pre ret log 改變
//proxy 代理 增強對象和函數(方法) 生命周期 真正方法執行之前預處理 let obj={ add:function(){ return val+100; }, name:‘I am jun‘ } console.log(obj.add(100)); console.log(obj.name); let pro=new Proxy({ add:function(){ return val+100; }, name:‘I am jun‘ },{ //預處理機 get:function(target,key,property){ console.log(target); console.log(key); console.log(property); console.log(‘come in Get‘); return target[key]; }, set:function(target,key,value,receiver){ //value是要改變的值 console.log(‘setting ${key}=${value}‘); return target[key]=value+‘111‘; } }); console.log(pro.name) pro.name=‘nl‘ console.log(pro.name) //apply是內部調用的方法 let target=function(){ return ‘I am from China‘ } let handler={ apply(target,ctx,args){ console.log(‘do apply‘); return Reflect.apply(...arguments); } } //proxy中兩個對象 let pro1=new Proxy(target,handler); console.log(pro1());
ES6 用proxy進行預處理