1. const parent = {
    2. name: '19Qingfeng',
    3. get value() {
    4. return this.name;
    5. },
    6. };
    7. const handler = {
    8. get(target, key, receiver) {
    9. - return Reflect.get(target, key);
    10. + return Reflect.get(target, key, receiver);
    11. },
    12. };
    13. const proxy = new Proxy(parent, handler);
    14. const obj = {
    15. name: 'wang.haoyu',
    16. };
    17. // 设置obj继承与parent的代理对象proxy
    18. Object.setPrototypeOf(obj, proxy);
    19. // log: wang.haoyu
    20. console.log(obj.value);

    结论:

    • 保持 receiver 始终指向被代理后的对象
    • Proxy 中接受的 Receiver 形参表示代理对象本身或者继承与代理对象的对象。
    • Reflect 中传递的 Receiver 实参表示修改执行原始操作时的 this 指向。