1. 程式人生 > >ES6 用proxy進行預處理

ES6 用proxy進行預處理

調用 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進行預處理