【发布时间】:2012-04-18 07:18:02
【问题描述】:
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
其实是返回prototype的proto属性,按照getPrototypeOf()的定义是不是错了?
>a.constructor.prototype.__proto__
HTMLElement
【问题讨论】:
标签: javascript dom