0

ECMASCRIPT 将原型对象定义为构造函数的原型属性。

以下是从 ECMA-262 复制的:

4.3.4 创建和初始化对象的构造函数对象 注意构造函数的“原型”属性的值是一个原型对象,用于实现继承和共享属性。

为什么 HTMLDivElement.constructor.prototype == HTMLDivElement ?

如果 a 是 HTMLDivElement 对象,Object.getPrototypeOf(a) 返回 HTMLElement,而它应该返回 constructor.prototype,即 HTMLDivElement。

这与 ECMA 标准完全矛盾。

请帮助我理解这个概念......提前致谢。

在此处输入图像描述

4

2 回答 2

3

Chrome 控制台向我显示:

HTMLDivElement.constructor.prototype == HTMLDivElement

错误的

它在控制台中显示的事实HTMLDivElement并不意味着它是一个HTMLDivElement.

还:HTMLDivElement.constructor.prototype == HTMLElement.constructor.prototype

于 2012-04-04T18:22:01.033 回答
1

HTMLDivElement由 w3c 定义为接口(参见http://www.w3.org/TR/html5/the-div-element.html#htmldivelement),因此其实现取决于浏览器的供应商并有所不同。

在 Chrome 中不是正确的构造函数(只是尝试执行new HTMLDivElement),在 Firefox 中它根本不是构造函数(它是一个对象)。

于 2012-04-04T18:27:11.220 回答