主题
Proxy 和 Reflect
Proxy 用来拦截对象上的底层操作,Reflect 用来以标准方式转发这些操作。它们通常一起出现。
先抓住核心模型
可以把 Proxy 理解成“对象的代理层”:
js
const target = { name: 'Lee' }
const proxy = new Proxy(target, {})
console.log(proxy.name) // 'Lee'如果 handler 为空,代理几乎就是透明的;如果在 handler 里声明了 trap,就能拦截对应操作。
基本语法
js
const proxy = new Proxy(target, handler)target:被代理的目标对象handler:拦截规则
Proxy 适合解决什么问题
Proxy 更适合做“行为拦截”,例如:
- 读取时补默认值
- 写入时校验
- 访问时做日志记录
- 函数调用时包一层控制逻辑
- 暴露一个受控接口,而不是原始对象
如果只是普通对象读写,通常不需? Proxy 和 Reflect
Proxy 用来拦截对象上的底层操作,Reflect 用来以标准方式转发这?m Proxy 用来拦,
先抓住核心模型
可以把 Proxy 理解成“对象的代理层”:
js
const target = { name: 'Lee')
可以把 `Proxy` le.log(
```js
const target = { name: 'Lee' }
const js
const
const proxy = new Proxy(target, {})
arg
console.log(proxy.name) // 'L if```
如果 `handler` 为空,代理?
?