JavaScript窗口全局对象

3
我已经了解到,'window' 全局对象是顶层对象。它是所有代码的“箱子”,其中包含 DOM、BOM 和 JavaScript 代码。
我已经知道,window 对象代表浏览器中打开的窗口,而且该 window 对象没有构造函数,这意味着无法创建其实例。
我已经了解到,该对象是由浏览器自动创建的。如何实现呢?
我的意思是,如果它没有任何构造函数,那么浏览器就不能创建该对象的实例,我在想浏览器一定以某种方式创建它,那么浏览器是如何创建它的呢?

您的推理并不完全正确。window.constructor !== undefined。另外,window并不包含所有的"JS"。 - pimvdb
1个回答

0

没有构造函数?

>> window.constructor
[object Window]

哇,你知道吗,一个构造函数!

话虽如此...

>> new Window
(X) Object does not support this action

所以我猜这意味着只有本地代码才能创建Window的新实例。


请问您能否更好地解释一下,当您在使用 window 对象的构造函数时,它会返回 window 对象,但是如果我在函数中写入 $this 变量,例如:function foo(){document.write($this);},如果我运行这个函数,也会发生同样的事情。如果您能用其他措辞解释您所说的话,我将不胜感激。 - user1316123
还有什么需要解释的呢?window有一个构造函数,这就是你要问的吧? - Niet the Dark Absol
如果我理解正确的话,有一个窗口对象,它有一个构造函数。重新创建窗口对象的唯一方法是通过引用其本机代码 window.constructor。我理解我们不能将窗口对象构造成 x 对象,我们只能调用它或重新创建它。如果有人可以确认这一点,我会很高兴的。谢谢大家。 - user1316123

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接