关于w3schools关于the window object的JavaScript参考,文档对象似乎是它的属性。虽然,正如我们所知,文档对象不需要任何明确的window.document
,但只需要document
。在检查它们是否不同之后,我使用了这段代码:
<script type="text/javascript">
window.onload = function()
{
alert("Using window.document: " + window.document.images.length);
alert("Using document: " + document.images.length);
};
</script>
<img id="1" src="/images/some_pic.gif" />
<img id="2" src="/images/some_other_pic.gif" />
...显示两种方法都打印出2
(文档中的图像数量)。这让我对一些我无法在其他地方找到答案的事情感到好奇:
document
,但我发现window.document
更合乎逻辑。除此之外,使用其中一种还有其他收获吗?document
对window.document
的引用是什么?答案 0 :(得分:1)
作为属性附加到window
的任何内容都可以在其前面没有window.
的情况下访问。每个JavaScript环境都有一个&#34;全局命名空间&#34;。 window
是浏览器中的全局命名空间。如果您在node.js中编写JavaScript,那么名为global
的对象就是全局命名空间。
如果您声明一个没有var
关键字的变量,那么该变量将成为&#34; global&#34;。也许你已经知道了,但你可能不知道的是你的变量实际上变成了window
的属性。
function doSomething() {
var inScope = "I am only accessible within the doSomething function.";
notInScope = "I am a global variable which means you can access me at window.notInScope.";
}
此外,即使您使用var
但它没有包含在任何会限制其范围的内容中,它也会成为一个全局变量。
<script type="text/javascript">
var isGlobal = "This variable is global even though we used 'var' because it was declared in the root/global scope.";
</script>