在JavaScript DOM中,存在全局对象window
和document
。
window
是什么类型?是Window
吗?
document
是什么类型? HTMLDocument
(见图示)还是Document
?
按类型,我的意思是https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model中的interface
或JavaScript:The Definitive Guide中的class
谢谢。
答案 0 :(得分:3)
在JavaScript DOM中,有全局对象窗口和文档。
不,不是。 window
是浏览器对象模型(BOM)的一部分,而不是Document Object Mode l。 document
不是全局对象,它是全局window
对象的属性。您只能像document
那样访问它的原因不是因为document
是全局的,而是因为window
是因为JavaScript Scope Chain的工作方式而省略了{{1 }}只是意味着它将最终在全局window
对象中找到document
。
“核心”文档对象模型是用于处理XML或HTML文档的通用API,由于可以同时使用两种类型,因此window
对象并非特定于HTML或XML文档。
您显示的图形涉及文档对象模型的一种变体,称为 HTML DOM ,其中考虑了HTML特有的元素和属性文档,所以是的,在该图形中,document
实现了HTMLDocument
接口,这意味着HTMLDocument是一种文档类型,但它仍在实现Document
接口。 / p>
现在,最后,我们要解决类型与实例的关系。在JavaScript中,没有Node
或window
“类型”,而有document
和window
是“对象”。对象虽然有很多不同的种类,document
是window
对象的实例,而Window
是document
对象的实例:
Document