5.7.1.4 window对象

  ECMAScript虽然没有指出如何直接访问Global对象,但web浏览器都是将这个全局对象作为window对象的一部分加以实现的。因此,在全局作用域中声明的所有变量和函数,就都成为了window对象的属性。例如:

var color = "red";

function sayColor()
{
    alert(window.color);
}

window.sayColor();//red

  这里定义了一个名为color的全局变量和一个名为sayColor()的全局函数。在sayColor()内部,我们通过window.color来访问color变量,以说明全局变量是window对象的属性。然后,又使用window.sayColor()来直接通过window对象调用这个函数,结果显示在了警告框中。

  注:JavaScript中的window对象处了扮演ECMAScript规定的Global对象的角色外,还承担了很多别的任务。

  另一种取得Global对象的方法是使用一下代码:

var gloabl=function()
{
  return this;  
}();

  以上代码创建了一个立即调用的函数表达式,返回this的值。如前所述,在没有给函数明确指定this值的情况下(无论是通过将函数添加为对象的方法,还是通过调用call()或apply()),this值等于Global对象。而像这样通过简单的返回this来取得Global对象,在任何执行环境下都是可行的。

原文地址:https://www.cnblogs.com/yxlove/p/4544737.html