看完这篇,彻底搞懂 JavaScript Proxy 与 Reflect 的底层逻辑
2026/6/17 23:02:24 网站建设 项目流程

前几天,我去朋友家做客。朋友新开了一家“智能酒店”,号称整个酒店没有一个普通员工,全是机器人和智能管家,我一进门,就发现不对劲,前台小姐姐看起来很正常,但当我准备登记身份证时,她突然说:“请稍等,我需要检查一下您是否有权限入住。”

接着又检查了房间状态、会员等级、支付记录……我好奇地问朋友:“这前台怎么管这么宽?”

朋友神秘一笑:“她根本不是前台,她是代理(Proxy)。”

这时候我突然想起了 JavaScript 里的 Proxy,如果说对象(Object)是一家酒店,那么 Proxy 就像酒店门口的超级管家,所有人想访问酒店里的东西,都必须先经过他,而这个超级管家最厉害的地方,就是拥有各种各样的“捕获器(Trap)”。

今天我们就来聊聊 JavaScript Proxy 的十三大捕获器,以及与之对应的 Reflect 反射方法。

什么是 Proxy?

Proxy 本质上是对象的代理层。

访问:console.log(proxy.name);

实际上:

Proxy 就像酒店前台,所有请求先到前台,前台决定:

  • 放行
  • 拒绝
  • 修改结果
  • 记录日志

get()

拦截属性读取

有人来问 proxy.name,就会触发 get。

输出:

读取属性: name

小米

对应 Reflect.get(target, key);,就像酒店前台查询住客信息。

set()

拦截属性赋值

proxy.name ="老王";,触发:

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询