窗口和窗口有什么区别?

Mic*_*lps 11 javascript dom

什么是Window

这是我在Chrome控制台上看到的内容:

    window
    Window {top: Window, window: Window, location: Location, external: Object, 
chrome: Object…}

    Window
    function Window() { [native code] }
Run Code Online (Sandbox Code Playgroud)

Den*_*ret 19

Window正如你所看到的,是一个功能.它是windows的构造函数(但是你不能直接使用构造函数构建新窗口,通常使用该Window.open函数).Window.prototype因此保存了可以在窗口上调用的方法).

window是包含实例的全局变量Window,它表示包含文档的浏览器窗口(通常不是"窗口",而是现代浏览器中的选项卡).

你可以检查一下

window instanceof Window
Run Code Online (Sandbox Code Playgroud)

true
Run Code Online (Sandbox Code Playgroud)

  • @zloctb:你可以做`var x = Object.create(Window.prototype)`而x现在是`Window`的一个实例,但是,`x`与现有的`window`实例不同,因为它不是"绑定"到浏览器中的当前窗口.因此`window`有几个本地属性.例如,`x.Location`将不存在. (3认同)
  • @zloctb因为脚本无法以这种方式构建新窗口,所以它们必须使用Window.open函数. (2认同)
  • 这是http://stackoverflow.com/q/23547708/218196的副本,但你的答案实际上更好.我们应该关闭另一个作为这个副本吗? (2认同)
  • 另一方面,另一个问题是更好的措辞.我将标记为合并. (2认同)

SLa*_*aks 10

Window是用于创建的构造函数window.

要看到这一点,试试吧alert(window.constructor === Window).

  • 为了进一步混淆,请尝试`Window.prototype`. (2认同)