proxy有哪几种方法
时间: 2023-11-20 16:52:23 浏览: 62
Proxy对象有以下几种方法:
1. get(target, property, receiver):拦截对象属性的读取操作。
2. set(target, property, value, receiver):拦截对象属性的设置操作。
3. has(target, property):拦截in操作符,判断对象是否具有某个属性。
4. deleteProperty(target, property):拦截delete操作符,删除对象的某个属性。
5. apply(target, thisArg, argumentsList):拦截函数的调用操作。
6. construct(target, argumentsList, newTarget):拦截new操作符,用于创建对象。
7. getOwnPropertyDescriptor(target, property):拦截Object.getOwnPropertyDescriptor(),获取对象属性的描述符。
8. defineProperty(target, property, descriptor):拦截Object.defineProperty(),定义对象属性的描述符。
9. getPrototypeOf(target):拦截Object.getPrototypeOf(),获取对象的原型。
10. setPrototypeOf(target, prototype):拦截Object.setPrototypeOf(),设置对象的原型。
11. isExtensible(target):拦截Object.isExtensible(),判断对象是否可扩展。
12. preventExtensions(target):拦截Object.preventExtensions(),阻止对象的扩展。
13. ownKeys(target):拦截Object.getOwnPropertyNames()、Object.getOwnPropertySymbols()、Object.keys(),获取对象的所有属性名。
14. apply(target, thisArg, argumentsList):拦截函数的调用操作。
15. construct(target, argumentsList, newTarget):拦截new操作符,用于创建对象。\[1\]
总结起来,Proxy对象可以拦截对象的属性读取、设置、删除,函数的调用和构造,以及其他一些操作,从而实现对对象的访问进行过滤和改写。\[2\]\[3\]
#### 引用[.reference_title]
- *1* *2* *3* [Proxy 对象拦截器](https://blog.csdn.net/weixin_42724176/article/details/104811337)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文