摘要:用于修改某些操作的默認(rèn)行為,用來代理有些行為。的行為參數(shù)表示所要攔截的目標(biāo)對象,參數(shù)也是一個隊(duì)形,用來攔截行為。攔截對象屬性的設(shè)置攔截的操作,返回一個布爾值攔截的操作,返回一個布爾值。攔截,返回一個布爾值攔截,返回一個布爾值。
Proxy用于修改某些操作的默認(rèn)行為,用來代理有些行為。
ES6的行為:target參數(shù)表示所要攔截的目標(biāo)對象,handler參數(shù)也是一個隊(duì)形,用來攔截行為。
var proxy = new Proxy(target, hander);
Proxy的對象的方法
1.get(target, propKey, receiver)
攔截對象屬性的讀取,最后一個receiver是一個對象,可選。
2.set(target, propKey, value, receiver)
攔截對象屬性的設(shè)置
3.has(target, propKey)
攔截propKey in proxy的操作,返回一個布爾值
4.deleteProperty(target, propKey)
攔截delete proxy[propKey]的操作,返回一個布爾值。
5.ownKeys(target)
攔截Object.getOwnPropertyNames(proxy)、Object.getOwnPropertySymbols(proxy)、Object.keys(proxy)返回一個數(shù)組
6.getOwnPropertyDescriptor(target, propKey)
攔截Object.getOwnPropertyDescriptor(proxy, propKey),返回屬性的描述對象。
7.defineProperty(target, propKey, propDesc)
攔截Object.defineProperty(proxy, propKey, propDesc)、Object.defineProperties(proxy, propDescs),返回一個布爾值
8.preventExtensions(target)
攔截Object.preventExtensions(proxy),返回一個布爾值。
9.getPrototypeOf(target)
攔截Object.getPrototypeOf(proxy),返回一個對象。
10.isExtensible(target)
攔截Object.isExtensible(proxy),返回一個布爾值
11.setPrototypeOf(target, proto)
攔截Object.setPrototypeOf(proxy, proto),返回一個布爾值
12.apply(target, object, args)
攔截 Proxy 實(shí)例作為函數(shù)調(diào)用的操作,比如proxy(...args)、proxy.call(object, ...args)、proxy.apply(...)。
13.construct(target, args)
攔截 Proxy 實(shí)例作為構(gòu)造函數(shù)調(diào)用的操作,比如new proxy(...args)。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/82033.html
摘要:理解元編程和是屬于元編程范疇的,能介入的對象底層操作進(jìn)行的過程中,并加以影響。元編程中的元的概念可以理解為程序本身。中,便是兩個可以用來進(jìn)行元編程的特性。在之后,標(biāo)準(zhǔn)引入了,從而提供比較完善的元編程能力。 導(dǎo)讀 幾年前 ES6 剛出來的時候接觸過 元編程(Metaprogramming)的概念,不過當(dāng)時還沒有深究。今天在應(yīng)用和學(xué)習(xí)中不斷接觸到這概念,比如 mobx 5 中就用到了 Pr...
摘要:攔截實(shí)例作為構(gòu)造函數(shù)調(diào)用的操作,比如。方法等同于,這提供了一種不使用,來調(diào)用構(gòu)造函數(shù)的方法。方法對應(yīng),返回一個布爾值,表示當(dāng)前對象是否可擴(kuò)展。這是的一個提案,目前轉(zhuǎn)碼器已經(jīng)支持。別名或修飾器在控制臺顯示一條警告,表示該方法將廢除。 Proxy Proxy 這個詞的原意是代理,用在這里表示由它來代理某些操作,可以譯為代理器,即用自己的定義覆蓋了語言的原始定義。ES6 原生提供 Proxy...
摘要:即必須有返回值其中可接受三個參數(shù),為目標(biāo)對象,為屬性名,為實(shí)際接受的對象,默認(rèn)為本例中新建的,如果單獨(dú)指出一個對象,可使指出對象受到相同的方法作用。且中的必須有返回值,的不用,這也正是因?yàn)樵谒筮€會執(zhí)行所以不需要。 ES6 Proxy/Reflect Proxy 攔截器 proxy是es6的新特性,簡單來講,即是對目標(biāo)對象的屬性讀取、設(shè)置,亦或函數(shù)調(diào)用等操作進(jìn)行攔截(處理)。 let...
摘要:代理和反射的定義調(diào)用可常見代替其它目標(biāo)對象的代理,它虛擬化了目標(biāo),所以二者看起來功能一致。代理可攔截引擎內(nèi)部目標(biāo)的底層對象操作,這些底層操作被攔截后會觸發(fā)響應(yīng)特定操作的陷阱函數(shù)。 代理和反射的定義 調(diào)用 new Proxy() 可常見代替其它目標(biāo) (target) 對象的代理,它虛擬化了目標(biāo),所以二者看起來功能一致。 代理可攔截JS引擎內(nèi)部目標(biāo)的底層對象操作,這些底層操作被攔截后會觸發(fā)...
摘要:存取描述符同時具有以下可選鍵值一個給屬性提供的方法,如果沒有則為。該方法返回值被用作屬性值。值得注意的是屬性描述符必須是數(shù)據(jù)描述符或者存取描述符兩種形式之一,不能同時是兩者??梢院雎苑椒ǖ姆祷刂?。 前言 我們或多或少都聽過數(shù)據(jù)綁定這個詞,數(shù)據(jù)綁定的關(guān)鍵在于監(jiān)聽數(shù)據(jù)的變化,可是對于這樣一個對象:var obj = {value: 1},我們該怎么知道 obj 發(fā)生了改變呢? define...
閱讀 1325·2021-11-22 14:44
閱讀 2465·2021-09-30 09:47
閱讀 1239·2021-09-09 11:56
閱讀 2104·2021-09-08 09:45
閱讀 4037·2021-08-31 09:40
閱讀 1271·2019-08-30 15:52
閱讀 2060·2019-08-30 14:09
閱讀 1607·2019-08-26 17:04