首頁  >  文章  >  web前端  >  JavaScript中的全域物件介紹_javascript技巧

JavaScript中的全域物件介紹_javascript技巧

WBOY
WBOY原創
2016-05-16 16:22:321210瀏覽

對於任何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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn