全局对象“窗口”和“文档”的类型是什么?

时间:2019-04-29 21:52:32

标签: javascript dom

在JavaScript DOM中,存在全局对象windowdocument

window是什么类型?是Window吗?

document是什么类型? HTMLDocument(见图示)还是Document

按类型,我的意思是https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model中的interface或JavaScript:The Definitive Guide中的class

enter image description here

谢谢。

1 个答案:

答案 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中,没有Nodewindow“类型”,而有documentwindow是“对象”。对象虽然有很多不同的种类,documentwindow对象的实例,而Windowdocument对象的实例:

Document