【发布时间】:2016-07-02 22:22:39
【问题描述】:
我有一个问题。想象一下我们有这样的 html 文档:
<html>
<head>
</head>
<body>
<p id="1">Hi</p>
</body>
</html>
当我写 document.getElementById("1").__proto__; 时 - 我得到了 HTMLParagraphElement 对象。它是 p 对象原型链中的第一个原型对象(HTMLParagraphElement--> HTMLElement --> Element--> Node-->...)。由于 Node 对象位于此链中,因此其所有属性和方法都可用于 HTMLParagraphElement 对象。当我写document.getElementById("1").__proto__.parentNode; 时,浏览器会给我
未捕获的类型错误:非法调用。 这是什么意思?我怎么知道这个 HTMLParagraphElement 对象在哪里连接到 BOM?例如,如果我正在写 var x=10; - 它是一个对象,它连接到窗口对象的根(window.x;)。我想对BOM的结构有一个清晰的了解。
【问题讨论】:
-
我猜
.parentNode使用/是一个 ES6 吸气剂。读取.parentNode不只是访问变量,它调用getter 函数并返回结果。在那个函数里面,有一些浏览器不允许的东西。
标签: javascript