setPrototypeOf()
- setPrototypeOf()捕获器会在 Object.setPrototypeOf()中被调用。对应的反射 API 方法为 Reflect.setPrototypeOf()。
const myTarget = {}; const proxy = new Proxy(myTarget, { setPrototypeOf(target, property) { console.log("setPrototypeOf()"); return Reflect.setPrototypeOf(...arguments); }, }); Object.setPrototypeOf(proxy, Object); // setPrototypeOf()
- 返回值
setPrototypeOf()必须返回布尔值,表示原型赋值是否成功。返回非布尔值会被转型为布尔值。 - 拦截的操作
Object.setPrototypeOf(proxy); Reflect.setPrototypeOf(proxy); - 捕获器异常
target: 目标对象;
prototype: target 的替代原型,如果是顶级原型就是 null; - 捕获器不变式 如果 target 不可扩展,则唯一有效的 prototype 参数就是 Object.getPrototypeOf(target)的返回值
Object.setPrototypeOf()方法设置一个指定的对象原型(既内部[[Prototype]]属性)到另一个对象或 null