JavaScript中的全域對象介紹,javascript全域對象

來源:互聯網
上載者:User

JavaScript中的全域對象介紹,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標準的非strict 模式下,this指代全域對象。
2.在ECMAScript 5標準的strict 模式下,this指代undefined。

根據這一特性,可以使用以下代碼來判斷當前是否處於strict 模式:


複製代碼 代碼如下:
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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.