ES6: Proxy

Proxy用於修改某些操做的默認行爲,用來代理有些行爲。
ES6的行爲:target參數表示所要攔截的目標對象,handler參數也是一個隊形,用來攔截行爲。數組

var proxy = new Proxy(target, hander);

Proxy的對象的方法
1.get(target, propKey, receiver)app

攔截對象屬性的讀取,最後一個receiver是一個對象,可選。

2.set(target, propKey, value, receiver)函數

攔截對象屬性的設置

3.has(target, propKey)代理

攔截propKey in proxy的操做,返回一個布爾值

4.deleteProperty(target, propKey)code

攔截delete proxy[propKey]的操做,返回一個布爾值。

5.ownKeys(target)對象

攔截Object.getOwnPropertyNames(proxy)、Object.getOwnPropertySymbols(proxy)、Object.keys(proxy)返回一個數組

6.getOwnPropertyDescriptor(target, propKey)ip

攔截Object.getOwnPropertyDescriptor(proxy, propKey),返回屬性的描述對象。

7.defineProperty(target, propKey, propDesc)get

攔截Object.defineProperty(proxy, propKey, propDesc)、Object.defineProperties(proxy, propDescs),返回一個布爾值

8.preventExtensions(target)io

攔截Object.preventExtensions(proxy),返回一個布爾值。

9.getPrototypeOf(target)event

攔截Object.getPrototypeOf(proxy),返回一個對象。

10.isExtensible(target)

攔截Object.isExtensible(proxy),返回一個布爾值

11.setPrototypeOf(target, proto)

攔截Object.setPrototypeOf(proxy, proto),返回一個布爾值

12.apply(target, object, args)

攔截 Proxy 實例做爲函數調用的操做,好比proxy(...args)、proxy.call(object, ...args)、proxy.apply(...)。

13.construct(target, args)

攔截 Proxy 實例做爲構造函數調用的操做,好比new proxy(...args)。
相關文章
相關標籤/搜索