const parent = {name: '19Qingfeng',get value() {return this.name;},};const handler = {get(target, key, receiver) {- return Reflect.get(target, key);+ return Reflect.get(target, key, receiver);},};const proxy = new Proxy(parent, handler);const obj = {name: 'wang.haoyu',};// 设置obj继承与parent的代理对象proxyObject.setPrototypeOf(obj, proxy);// log: wang.haoyuconsole.log(obj.value);
结论:
- 保持 receiver 始终指向被代理后的对象
- Proxy 中接受的 Receiver 形参表示代理对象本身或者继承与代理对象的对象。
- Reflect 中传递的 Receiver 实参表示修改执行原始操作时的 this 指向。
