一个是首字母大写的Window,一个实首字母小写的window,同样的还有 Navigator / navigator, History / history , Document / document 等等,他们之间是什么关系?
按理说 Window 应该是类,然后 window 是实例对象,但是没有 new Window() ,然后 window 对象是内建对象。什么时候会使用 Window / Documen 这些首字母大写的对象?
一言蔽之
window instanceof Window
document instanceof Doocument
通常不会使用到 Window
和 Document
。
但是也不是说 Window
就永远只有 window
一个实例、 Document
就永远只有 document
一个实例。比如可以访问到 <iframe>
里面的 Window
和 Document
。再比如说 XMLHttpRequest
的 responseXML
属性就会返回一个 Document
的实例。
但是直接使用 Window
和 Document
两个构造函数的情况,我还从来没遇到过。
接楼上的图,Window是一个函数,而window是Window的一个实例,是Window new出来的一个实例
这是在浏览器 Console 里面执行的结果,Window 是一个函数, window 是一个对象。