全局对象“window”和“document”的类型是什么?

Tim*_*Tim -4 javascript dom

在 JavaScript DOM 中,有全局对象windowdocument.

的类型是什么window?是吗Window

的类型是什么documentHTMLDocument(见下图)或Document

就类型而言,我的意思interfacehttps://developer.mozilla.org/en-US/docs/Web/API/Document_Object_ModelclassJavaScript:权威指南

在此输入图像描述

Sco*_*cus 7

在 JavaScript DOM 中,有全局对象 window 和 document。

不,不是真的。它window是浏览器对象模型 (BOM) 的一部分,而不是文档对象模型。并且document不是 Global 对象,它是 Global 对象的属性window。您可以直接访问它的原因不是document因为documentis Global,而是因为is 以及 JavaScript作用域链的window工作方式,省略仅意味着它将最终在 Global对象中找到。windowdocumentwindow

“核心”文档对象模型是用于处理 XML 或 HTML 文档的通用 API,并且由于它可以用于这两种文档,因此该document对象并不特定于 HTML 或 XML 文档。

您显示的图形是指文档对象模型的一个变体,称为HTML DOM,它考虑了特定于 HTML 文档的元素和属性,所以是的,在该图形中HTMLDocument实现了Document接口,这意味着HTMLDocument 是一种文档类型,但它仍然实现了该Node接口。

现在最后,我们必须解决类型与实例的问题。在 JavaScript 中,没有“window类型document”,有“对象”,其中windowdocument是。对象有许多不同的种类,并且window是对象的实例Window,而document是对象的实例Document

console.log(typeof window);  // The window is a type of object
console.log(window instanceof Window);  // Particularly a Window object

// You can often find out what interface the object implements
// by just logging it cast as a string.
console.log(window.toString());
console.log(document.toString());
Run Code Online (Sandbox Code Playgroud)