读书笔记-JavaScript中的全局对象

对此别的JavaScript程序,当程序起始运营时,JavaScript解释器都会伊始化3个大局对象以供程序行使。这几个JavaScript自个儿提供的全局对象的意义包涵:

1.全局指标具备壹些常用的属性值。比如undefined、Infinity以及NaN。
贰.全局对象具备壹些常用的性质对象。比如Math、JSON和Number对象均为该全局对象的脾气。
叁.全局对象提供一些大局函数供调用。比如isNaN()、isFinite()、parseInt()和eval()等。
四.全局指标提供部分大局构造器(constructor),也即全局类。比如Date()、RegExp()、String()、Object()和Array()等。

 

除了这几个之外JS全局对象,对于运转在浏览器端的JavaScript程序,还有另一个大局对象:window。window全局对象提供了与如今窗口、页面有关的恒河沙数天性与艺术。除了那几个与浏览器有关的大局属性和艺术,window对象还包裹了JS全局对象,并向外暴光JS全局对象的属性与接口;因而,当进行浏览器端JavaScript编程时,只需关怀window全局对象即可。

 

对此JavaScript程序中的this,假如this不属于任何function,那么这一个this就代替JS全局对象;假诺是浏览器端运转的JS程序,那么那一个this就代表window全局对象。

 

要是那一个this属于某些function,那么this指代的正是调用该function的靶子。若那种意况下function只是一个平凡的函数,而不是有些类的法子,那么this的代表存在二种或许:

 

1.在ECMAScript 3正经,以及ECMAScript
五号正楷字经的非严刻形式下,this指代全局对象。
二.在ECMAScript 伍正规的严俊格局下,this指代undefined。

 

依照这一表征,能够应用以下代码来判断当前是或不是处于严峻方式:

 

代码如下:

var strict = (function(){return !this;}());

 

若果在JavaScript程序中开创了全局变量,那么这几个全局变量会变成全局对象中的一个属性。

 

实验

 

代码如下:

var a = this;
console.log(a);//window object
console.log(a.outerWidth);//access window object’s attribute
console.log(a.isNaN);//access JS global object’s attribute

 

x = “test”;
console.log(a.x);//access newly created global variable value