全局对象

一个全局对象是一个永远存在于 global scopeobject.

在 JavaScript 中, 有一个永远被定义的全局对象. 在一个 web 浏览器中, 当脚本创建全局变量时, 他们作为该全局对象的成员被创建. (在 Node.js 不是这样.) 全局对象的 interface 取决于脚本在其中运行的执行上下文. 例如:

  • 在Web浏览器中,脚本没有专门作为后台任务启动的任何代码都将Window 作为其全局对象。这是Web上绝大多数的JavaScript代码。
  • 在 Worker 中运行的代码将WorkerGlobalScope 对象作为其全局对象。
  • Node.js 环境下运行的脚本具有一个称为global 的对象作为其全局对象。

浏览器中的 window 对象

window 对象是浏览器中的全局对象。任何全局变量或者全局函数都可以通过 window  的属性来访问。

访问全局变量

var foo = "foobar";
foo === window.foo; // Returns: true 

在定义全局变量 foo 之后,我们可以通过 window 对象的属性来访问它。把变量名 foo 作为全局对象的 window.foo 的属性名来使用。

解释:

全局变量 foo 存储在 window 对象中,像这样:

foo: "foobar"

访问全局函数

function greeting() {
   console.log("Hi!");
}

window.greeting(); // It is the same as the normal invoking: greeting();

上面解释了全局对象如果作为 window 对象的属性而存储的。我们创建了全局函数 greeting  ,然后通过 window 对象来调用它。.

解释:

全局函数 greeting 存储在 window 对象中,像这样:

greeting: function greeting() {
   console.log("Hi!");
}