Proxy

1、proxy = new Proxy(obj,handler),obj可是空对象也可以是函数,handler是一个方法对象、如果handler是一个对象那么直通原对象,也就是说操作proxy等于操作了obj(如proxy.name = 'smile' consolog.log(obj)返回也是smile)

2、我们操作都在proxy中操作,也就是实例上操作,不能在原对象上操作。

3、其实proxy跟Reflect是一一对应的

4、handler是方法对象里面包括下面那么多的方法

get(target,name,receiver) {} => proxy.name proxy['name']

set(target,name,artt,receiver){] => proxy.name proxy['name']

has(targer,name) => name in target

ownKeys(target) => object.getOwnPropertyName(proxy) object.getOwnPropertySymbols(proxy),Object.keys(proxy),for..in 返回的是一个数组

getOwnPropetyDescriptor(target,name) => object.getOwnPropertyDescriptor(target,name)

defineProperty(target,name,desc) => object.defineProperty(proxy,name,desc) object.definePrope(proxy,name,desc)

posted @ 2020-09-21 21:02  无用之美  阅读(68)  评论(0)    收藏  举报