全局对象(global object),是一类非常重要的对象。全局对象的属性是全局定义的符号,Javascript可以直接使用。
当Javascript解释器启动时,它将创建一个新的全局对象,而且它有以下初始属性:
- 全局属性, 比如undefined,Infinity和NaN
- 全局函数,比如isNaN()、parseInt()和eval()
- 构造函数,比如Date()、RegExp()、String()、Object()、Array()
- 全局对象,比如Math和JSON
在顶级代码中(不在任何函数内),可以通过this来引用全局对象,var global = this
。
在浏览器中,Window对象(W大写)充当了全局对象,而Window对象有个属性window(w小写)引用了其自身,可以代替this对象。
var global = this
global == window //true
global == Window //false
声明的全局变量就是全局对象的一个属性
var str = 'hello'
this.str === str //true