Object.getPrototypeOf(obj) 是如何工作的?
根据定义 Object.getPrototypeOf(obj) 应该返回 Object 的原型属性,或者以另一种方式它与 obj.constructor.prototype 相同。
使用 new 创建的对象使用其构造函数的原型属性值作为其原型。
举个例子:
>element = document.getElementById("test")
>a = Object.getPrototypeOf(element)
HTMLDivElement
假设 HTMLDivElement 是元素的原型。
>a.constructor.prototype
HTMLDivElement
所以 a.constructor.prototype 是 HTMLDivElement 所以 Object.getPrototypeOf(a) 应该返回 HTMLDivElement 但它返回 HTMLElement。我完全对 getPrototypeOf() 的定义感到困惑。
>b = Object.getPrototypeOf(a)
HTMLElement ----> 为什么?a.constructor.prototype 是 HTMLDivElement
实际上它是返回原型的proto属性,根据 getPrototypeOf() 的定义是不是错了?
>a.constructor.prototype.__proto__
HTMLElement