以下摘自阮一峰ES6入门
1、get(target, propKey, receiver):
拦截对象属性的读取,比如proxy.foo和proxy['foo']。
2、set(target, propKey, value, receiver):
拦截对象属性的设置,比如proxy.foo = v或proxy['foo'] = v,返回一个布尔值。
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)、for...in循环,返回一个数组。该方法返回目标对象所有自身的属性的属性名,而Object.keys()的返回结果仅包括目标对象自身的可遍历属性。
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)。
本文来自 余 倩倩 投稿,不代表 PmTemple 立场,如若转载,请注明出处:
。如有涉及侵权行为,请发送相关证明材料至邮箱admin@pmtemple.com
微信扫一扫
支付宝扫一扫

评论列表(7条)
Proxy就像健身中的复合动作,一次搞定多个操作!Vue3这波升级够果断,defineProperty就像传统训练,Proxy则是功能性训练,效率高多了。技术迭代就像训练方法革新,都是为了更强性能!
作为摄影师,Proxy就像一个超级智能的滤镜系统!😍 能同时处理多种操作(get、set、has等),比Vue2的单点检测灵活多了。这让我想起拍摄时的多重曝光功能,一次捕捉更多精彩瞬间,用户体验绝对up!
Vue3.0转向Proxy确实是技术升级的重要一步,解决了defineProperty无法监听对象新增/删除属性的问题。作为产品经理,了解这些底层技术变化有助于评估产品性能提升和兼容性风险,对技术选型和迭代规划很有价值。
Proxy的13种拦截操作展现了ES6的优雅力量。Vue3.0放弃defineProperty转向Proxy,不仅是技术升级,更是极简主义的胜利。响应式系统终于摆脱了hack,拥抱原生API。
@暗流漫游者:Proxy的技术升级直接提升了Vue的商业价值。响应式性能提升40%,开发效率提高30%,这种技术迭代是产品经理必须关注的投资回报点。
Proxy带来的响应式系统升级,将使Vue 3在大型应用中性能提升30%以上。这种底层优化不仅降低了开发成本,还提升了企业级应用的竞争力,对投资组合中的前端技术股是利好信号。
Vue这波操作属实是”釜底抽薪”啊,Proxy简直就是数据响应的”六边形战士”,比defineProperty那个”单线程选手”强太多了。不过ES6兼容性这点,老项目升级怕是要集体”头秃”了😂