文章目录
- get(target, propKey, receiver)
- set(target, propKey, value, receiver)
- apply(target, object, args)
- Proxy的 has(target, propKey)
- construct(target, args)
- deleteProperty(target, propKey)
- ownKeys(target)
- getOwnPropertyDescriptor(target, propKey)
- defineProperty(target, propKey, propDesc)
- preventExtensions(target)
- getPrototypeOf(target)
- isExtensible(target)
- setPrototypeOf(target, proto)
get(target, propKey, receiver)
- 拦截对象的属性读取,比如proxy.foo 和 proxy[‘foo’]。
set(target, propKey, value, receiver)
- 拦截对象属性的设置,比如proxy.foo = v或proxy[‘foo’] = v,返回一个布尔值操作
apply(target, object, args)
- 拦截Proxy实例作为函数用的操作,比如proxy(…args),proxy.call(object,…args),proxy.apply(…).
Proxy的 has(target, propKey)
- 拦截porokey in proxy的操作,返回一个布尔值。
construct(target, args)
- 拦截proxy实例作为构造函数的操作,比如new proxy(…args).
deleteProperty(target, propKey)
- 拦截 delete proxy[propKey]的操作,返回一个布尔值
ownKeys(target)
- 拦截object.getOwnPropertyNames(proxy),Object.getOwnPropertySymbols(proxy),Object.keys(proxy),for…in循环,返回一个数组。该方法返回目标对象所有自身属性的属性名,而Object.keys()的返回结果仅包括目标对象自身可遍历的属性。
getOwnPropertyDescriptor(target, propKey)
- 拦截Object.getOwnPropertyDescriptor(proxy,propKey),返回属性的描述对象。
defineProperty(target, propKey, propDesc)
- 拦截Object.defineProperty(proxy,propKey,propDesc),Object.definePropertys(proxy,propDescs),返回一个布尔值。
preventExtensions(target)
- 拦截object.preventExtensions(proxy),返回一个布尔值。
getPrototypeOf(target)
- 拦截Object.getPrototypeOf(proxy),返回一个对象。
isExtensible(target)
- 拦截object.isExtensible(proxy),返回一个布尔值。
setPrototypeOf(target, proto)
- 拦截Object.setPrototypeOf,返回一个布尔值。如果目标对象是函数,那么还有两种额外操作可以拦截。