我读了一篇关于Document Object Model Prototypes的帖子。虽然这篇文章非常有趣且写得非常好,但在我看来,这篇文章的实际内容在现实中并非如此。例如,以下代码:
var div = document.createElement("div");
alert(div.constructor);
在FireFox上提醒 [对象HTMLDivElement] (以及Chrome上的类似消息)但在IE(8和9)上提醒未定义。我还尝试从帖子本身复制/粘贴代码片段,但它们无法运行。 我错过了什么吗?
答案 0 :(得分:2)
这是未定义的行为。
.constructor
属性绑定了JavaScript .prototype
。看起来FireFox和chrome有DOM元素通过JavaScript原型继承,而IE只是在内部创建一个元素。
关于从div
返回的.createElement
元素是否应该通过原型继承,没有可靠的规范。您不应该对DOM节点的继承链做任何假设,因为它完全取决于浏览器。