Javascript:Windows对象是默认对象吗?

时间:2014-04-02 21:01:34

标签: javascript object window default-value

第一次发表海报。我试着在发布之前搜索答案。

我是javascript的新手,来自Delphi / pascal背景。我习惯了必须明确说明的事情。当我看到包含setTimeout或setInterval的代码时(请参阅此处: http://www.w3schools.com/js/tryit.asp?filename=tryjs_setinterval1),我注意到它看起来像是一个内在函数。但我认为它实际上是Windows对象的一种方法。

所以它看起来像“窗口”。部分是可选的。这是一些特定于Window对象的东西吗?或者在javascript中识别任何没有包含对象名称的指定方法?如果全局范围中有另一个变量有一个名为setTimeout的方法,会发生什么?编译器/解释器如何知道使用哪一个?

非常感谢,

凯文

2 个答案:

答案 0 :(得分:3)

在Javascript中,有一种称为全局范围的东西。在浏览器上,全局范围对象为window。如果在函数外部创建变量,则默认情况下会进入全局范围,即窗口。

在窗口对象上调用方法或引用变量时,可以选择包含window

答案 1 :(得分:1)

它不是窗户的窗户(没有'在最后)。 据我所知,javascript有3个本地范围,[clouser],全球

每个变量或函数首先在本地范围内查找,然后是clouser,最后如果在其间的任何地方找不到它将在全局范围内进行检查。

在图像中,您将看到全局范围显示为Window对象,这意味着全局范围内的任何内容都会出现在窗口对象中。

在chrome devtools控制台中的代码下面复制粘贴

function outerFunction() { 
   var a = 10; 
   debugger; 
   function innerFunction() {
      'use strict'; 
      var b = 10;
      debugger; 
      console.log(a);
   } 
   innerFunction();
}
outerFunction();

在第一次调试时 on 1st debug

第二次调试

on 2nd debug