【学习笔记】proxy的用法

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,返回一个布尔值。如果目标对象是函数,那么还有两种额外操作可以拦截。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值