Proxy用于修改某些操作的默认行为,用来代理有些行为。
ES6的行为:target参数表示所要拦截的目标对象,handler参数也是一个队形,用来拦截行为。
var proxy = new Proxy(target, hander);
Proxy的对象的方法
1.get(target, propKey, receiver)
拦截对象属性的读取,最后一个receiver是一个对象,可选。
2.set(target, propKey, value, receiver)
拦截对象属性的设置
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)返回一个数组
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 实例作为函数调用的操作,比如proxy(...args)、proxy.call(object, ...args)、proxy.apply(...)。
13.construct(target, args)
拦截 Proxy 实例作为构造函数调用的操作,比如new proxy(...args)。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。