摘要:代理器攔截器反射和一樣都是用來(lái)操作對(duì)象的代理操作代理器同樣具有方法小花男小花沒(méi)有該屬性李小花反射和一樣都是用來(lái)操作對(duì)象的小花女師徒教育小花沒(méi)有該屬性李小花主要就是在執(zhí)行函數(shù)之前代理一下完事在執(zhí)行
Proxy(代理器/攔截器)Reflect反射
Proxy 代理操作Reflect和Proxy一樣 都是es6用來(lái)操作對(duì)象的 API
Proxy代理器 var proxy = new Proxy({}, { get: function(target, property) { return 35; } }); let obj = Object.create(proxy); obj.time // 35 console.log(obj.time)
Proxy()同樣具有g(shù)et、set方法
let obj={ name:"小花", age:18, sex:"男" } var proxObj=new Proxy(obj,{ set:function(target,key,value){ if(value=="小花"){ target[key]=value; } }, get:function(target,key){ if(target[key]==undefined){ return "沒(méi)有該屬性" }else{ return target[key]; } } }) proxObj.name="李小花"; console.log(proxObj.name)Reflect(反射)
//Reflect和Proxy一樣 都是es6用來(lái)操作對(duì)象的 API let obj={ name:"小花", age:18, sex:"女" } //Reflect.defineProperty(obj,"school",{value:"師徒教育"}); Reflect.deleteProperty(obj,"age"); console.log(Reflect.has(obj,"sex")); console.log(obj); var proxObj=new Proxy(obj,{ set:function(target,key,value){ if(value=="小花"){ Reflect.set(target,key,value); } }, get:function(target,key){ if(target[key]==undefined){ return "沒(méi)有該屬性" }else{ return Reflect.get(target,key); } } }) proxObj.name="李小花"; console.log(proxObj.name)
主要就是在執(zhí)行函數(shù)之前Reflect代理一下完事在執(zhí)行!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/84145.html
摘要:通過(guò)對(duì)這些底層內(nèi)置對(duì)象的代理陷阱和反射函數(shù),讓開(kāi)發(fā)者能進(jìn)一步接近引擎的能力。顯然,與要求代理目標(biāo)對(duì)象必須是一個(gè)函數(shù),這兩個(gè)代理陷阱在函數(shù)的執(zhí)行方式上開(kāi)啟了很多的可能性,結(jié)合使用就可以完全控制任意的代理目標(biāo)函數(shù)的行為。 代理(Proxy)可以攔截并改變 JS 引擎的底層操作,如數(shù)據(jù)讀取、屬性定義、函數(shù)構(gòu)造等一系列操作。ES6 通過(guò)對(duì)這些底層內(nèi)置對(duì)象的代理陷阱和反射函數(shù),讓開(kāi)發(fā)者能進(jìn)一步接...
摘要:方法與代理處理程序的方法相同。使用給目標(biāo)函數(shù)傳入指定的參數(shù)。當(dāng)然,不用反射也可以讀取的值。的例子我們可以理解成是攔截了方法,然后傳入?yún)?shù),將返回值賦值給,這樣我們就能在需要讀取這個(gè)返回值的時(shí)候調(diào)用。這種代理模式和的代理有異曲同工之妙。 反射 Reflect 當(dāng)你見(jiàn)到一個(gè)新的API,不明白的時(shí)候,就在瀏覽器打印出來(lái)看看它的樣子。 showImg(https://segmentfault....
摘要:方法與代理處理程序的方法相同。使用給目標(biāo)函數(shù)傳入指定的參數(shù)。當(dāng)然,不用反射也可以讀取的值。的例子我們可以理解成是攔截了方法,然后傳入?yún)?shù),將返回值賦值給,這樣我們就能在需要讀取這個(gè)返回值的時(shí)候調(diào)用。這種代理模式和的代理有異曲同工之妙。 反射 Reflect 當(dāng)你見(jiàn)到一個(gè)新的API,不明白的時(shí)候,就在瀏覽器打印出來(lái)看看它的樣子。 showImg(https://segmentfault....
Proxy(代理,攔截器),Reflect(反射) Proxy: 代理: var duixaing = { name:小胖, age:25, sex:男 } duixaing.name=老胖; console.log(duixaing.name);//打印:老胖。 console.log(duixaing);//打印:...
閱讀 535·2019-08-30 15:55
閱讀 944·2019-08-29 15:35
閱讀 1199·2019-08-29 13:48
閱讀 1910·2019-08-26 13:29
閱讀 2933·2019-08-23 18:26
閱讀 1237·2019-08-23 18:20
閱讀 2834·2019-08-23 16:43
閱讀 2710·2019-08-23 15:58