Proxy
setter/getter
JavaScript 支持 setter 和 getter 已经很长时间了。他们用带有 set 和 get 关键字的简单语法来拦截对象的属性访问和值的修改操作。
例如
setter/getter 有多个缺点:它们仅限 get 和 get 操作(显然)。它们不能与相同键(即"常规"属性)的数据入口一起使用。它们不是动态的,必须在对象声明期间用静态的 Object.defineProperty() 方法或通过使用计算值(仅适用于新的浏览器)显式地应用于每个属性。
Proxy
代理是内置的 JS 对象,可用于拦截和更改与对象相关的不同操作的行为。
Proxy 会创建一个新对象供你与之交互,而不是与原始对象进行交互,原始对象在使用 setter/getter 时会直接修改
使用静态的 Proxy.revocable() 方法可撤销代理
最后更新于
这有帮助吗?