我读了一篇关于 Document Object Model Prototypes 的帖子.虽然这篇文章很有趣而且写得很好,但在我看来,这篇文章的实际内容在现实中并不真实。例如下面的代码:
var div = document.createElement("div");
alert(div.constructor);
在 FireFox 上警告 [object HTMLDivElement](以及在 Chrome 上的类似消息)但在 IE(8 和 9)上它警告 undefined。我还尝试从帖子本身复制/粘贴代码片段,但它们无法运行。 我错过了什么吗?
最佳答案
这是未定义的行为。
.constructor
属性绑定(bind)了 JavaScript .prototype
。 FireFox 和 chrome 似乎具有通过 JavaScript 原型(prototype)继承的 DOM 元素,而 IE 只是在内部创建一个元素。
对于从 .createElement
返回的 div
元素是否应该通过原型(prototype)继承,没有一个可靠的规范。您不应该对 DOM 节点的继承链做出任何假设,因为它完全依赖于浏览器。
关于javascript - IE8 和 IE9 中的文档对象模型原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5531161/