第9章 代理与反射
第九章 代理与反射
代理基础
代理是目标对象的抽象,目标对象可以通过代理来操作,并施加行为。
const target = {
id: 'target'
}
const handler = {}
const proxy = new Proxy(target, handler)
捕获器
可以通过在handler定义一个get方法设置捕获器,捕获器接收目标对象,查询属性,还有代理属性三个参数。
const target = {
foo: 'bar'
};
const handler = {
get(trapTarget, property, receiver) {
return trapTarget[property];
}
};
const proxy = new Proxy(target, handler);
console.log(proxy.foo); // bar
console.log(target.foo); // bar
撤销代理
代理模式
通过捕获get、set、has等操作,监控对象什么时候被修改访问。隐藏属性(get时返回undefined)属性验证(set时选择是否设置值)函数构造参数认证(apply和constructor时返回失败)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 邹阳 の 博客!