答案 0 :(得分:5)
在浏览器环境中,Window被视为全局范围。
窗口对象实现Window接口,该接口继承自AbstractView接口 JavaScript参考和DOM参考中列出了一些额外的全局函数,名称空间对象,接口和构造函数,通常与窗口无关,但在其上可用。
窗口对象代表窗口本身 窗口的document属性指向在该窗口中加载的DOM文档 可以使用document.defaultView属性获取给定文档的窗口。
在标签式浏览器(如Firefox)中,每个选项卡都包含自己的窗口对象(如果您正在编写扩展名,浏览器窗口本身也是一个单独的窗口。
也就是说,窗口对象不在同一窗口中的选项卡之间共享。一些方法,即window.resizeTo和window.resizeBy适用于整个窗口,而不适用于窗口对象所属的特定选项卡。通常,任何与选项卡无法合理相关的内容都属于窗口。
答案 1 :(得分:3)
window
答案 2 :(得分:1)
多么棒的问题。我自己一直在思考这个问题。这是我的想法。 是的,它有一种称为全局对象和全局范围的东西。但是,全局范围是虚拟的,实际上是全局对象的实时镜像反射(即,全局对象中存在的属性作为全局函数/范围中的变量存在)。全局范围的任何更新都是对全局对象的更新(即,如果创建全局变量,则将其添加到全局范围和全局对象)。这是一个很酷的事实:如果你可以创建或调用全局范围,那么传递给它的上下文实际上就是全局对象。
这是硬核证明,在JavaScript中没有实际在函数外部执行的代码。有人认为顶级代码和内联脚本实际上并不在函数内部执行,但这不正确导致创建全局范围,必须调用全局函数,这意味着任何顶级代码都必须运行在那个全球功能中。