proxy 代理 Es6 增強 對象和函數(方法) Proxy用於修改某些操作的預設行為,即對編程語言層面進行修改,屬於“元編程”, Proxy意思為“代理”,即在訪問對象之前建立一道“攔截”,任何訪問該對象的操作之 前都會通過這道“攔截”,即執行Proxy裡面定義的方法。 ...
proxy 代理 Es6 增強 對象和函數(方法) Proxy用於修改某些操作的預設行為,即對編程語言層面進行修改,屬於“元編程”, Proxy意思為“代理”,即在訪問對象之前建立一道“攔截”,任何訪問該對象的操作之 前都會通過這道“攔截”,即執行Proxy裡面定義的方法。 聲明 Proxy 第一個大括弧放對象體 第二個放預處理機制 get set apply
let pro = new Proxy({ //方法體 add:function(val){ return val+100; }, name:'ananiah' },{ //預處理機制 get set apply //get 得到屬性前預處理 get:function(target,key,property){ console.log(target); //{add: ƒ, name: "ananiah"} console.log(key); //name return target[key] }, set:function(target,key,value,receiver){ console.log(`setting ${key} = ${value}`); //setting name = 代理 //返回之後列印出來的才會改變 return target[key] = value + '123'; } }); console.log(pro.name); pro.name='代理'; console.log(pro.name); //name 代理123 //apply let target = function(){ return 'ananiah'; } let handler = { apply(target,ctx,args){ console.log('apply start'); return Reflect.apply(...arguments); //apply start } }; let proxx = new Proxy(target,handler); //調用 console.log(proxx()) //ananiah