读书笔记-JavaScript中之大局对象

对任何JavaScript程序,当次开始运行时,JavaScript解释器都见面初始化一个大局对象为供程序行使。这个JavaScript自身提供的大局对象的功力包括:

1.全局目标具备一些常用之属性值。比如undefined、Infinity以及NaN。
2.全局目标拥有一些常用的特性对象。比如Math、JSON和Number对象清一色为该全局对象的性能。
3.全局靶提供部分大局函数供调用。比如isNaN()、isFinite()、parseInt()和eval()等。
4.全局对象提供有大局构造器(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
5规范的非严格模式下,this指代全局对象。
2.在ECMAScript 5业内的从严模式下,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