代理与反射 API 详解
1. 反射 API 与对象方法的差异
在 JavaScript 中, Object 和 Reflect 存在一些看似重复的方法,但它们有着微妙且重要的区别。例如:
let target1 = {};
let target2 = {};
let result1 = Object.setPrototypeOf(target1, target2);
let result2 = Reflect.setPrototypeOf(target1, target2);
console.log(result2 === target2); // false
console.log(result2); // true
在这个例子中, Object.setPrototypeOf() 返回的是目标对象 target1 ,而 Reflect.setPrototypeOf() 返回一个布尔值 true 。在代理陷阱中,建议使用 Reflect 对象的方法。
需要注意的是, Reflect.getPrototypeOf()/Object.getPrototypeOf() 和 Reflect.setPrototypeOf()/Object
超级会员免费看
订阅专栏 解锁全文
2120

被折叠的 条评论
为什么被折叠?



