getPrototypeOf()

157 阅读1分钟

getPrototypeOf()

  • getPrototypeOf()捕获器会在 Object.getPrototypeOf()中被调用。对应的反射 API 方法为 Reflect.getPrototypeOf()。
    const myTarget = {};
    const proxy = new Proxy(myTarget, {
      getPrototypeOf(target) {
        console.log("getPrototypeOf()");
        return Reflect.getPrototypeOf(...arguments);
      },
    });
    Object.getPrototypeOf(proxy);
    // getPrototypeOf()
    
  1. 返回值
    getPrototypeOf()必须返回对象或 null。

  2. 拦截的操作

    Object.getPrototypeOf(proxy);
    Reflect.getPrototypeOf(proxy);
    proxy._proto_;
    Object.prototype.isPrototypeOf(proxy);
    proxy instanceof Object
    
  3. 捕获器程序处理参数
    target: 目标对象。

  4. 捕获器不变式
    如果 target 不可扩展,则 Object.getPrototypeOf(proxy)唯一有效的返回值就是 Object.getPrototypeOf(target)的返回值

    Object.getPrototypeOf()方法返回指定对象的原型(内部[[Prototype]]属性的值)