前几天,我去朋友家做客。朋友新开了一家“智能酒店”,号称整个酒店没有一个普通员工,全是机器人和智能管家,我一进门,就发现不对劲,前台小姐姐看起来很正常,但当我准备登记身份证时,她突然说:“请稍等,我需要检查一下您是否有权限入住。”接着又检查了房间状态、会员等级、支付记录……我好奇地问朋友:“这前台怎么管这么宽?”朋友神秘一笑:“她根本不是前台,她是代理(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 ="老王";,触发: