javaScript關於全局對象

全局對象(global object)在javascript中有着重要的用途:全局對象的屬性是全局定義的符號。什麼意思呢?意思就是全局對象預約義了全局的屬性、函數、對象、構造函數以便你開發使用。javascript

好比說:html

1.全局屬性:好比undefined、Infinity以及NaN。
2.全局對象:好比Math、JSON和Number
3.全局函數:好比isNaN()、isFinite()、parseInt()和eval()等。
4.全局構造器(constructor),也即全局類。好比Date()、RegExp()、String()、Object()和Array()等。java

js運行時內置了一個Global對象

這個Global對象跟運行環境有關。在瀏覽器運行環境中。Global就是window對象。
在nodejs中。Global對象是global對象。

當你在瀏覽器環境中,直接使用一個未經定義的變量,
例如foo=123;那麼foo這個變量自動聲明爲全局變量。變量引用自動掛載到了Global對象,即window對象上。

Global對象上的屬性和函數都是js運行時提供的。例如escape\encodeURIComponent\decodeURIComponent\Regex\Infinite等等。。。

跟繼承沒有關係,你能夠認爲瀏覽器默認提供給你使用的對象,都放到了Global對象中,而window對象又剛好就是這個Global對象。實際上,在瀏覽器的內部實現中,隱藏了真正的Global對象,而把window對象做爲了Global對象的替身。一切對Global對象的操做(間接操做),都會映射到window對象上,反之亦然。這樣window對象就成了Global對象的替身。而window對象同時又做爲Global對象的一個屬性。這樣,真正的Global對象就被隱藏了。
node

window對象雖然是瀏覽器環境下的js Gloabl對象。但並不意味着window對象下的全部方法和屬性都是js原生提供的。原生對象只有不多一部分,瀏覽器環境中,大量的功能都是由宿主對象完成的。web

轉載自:http://zhidao.baidu.com/link?url=qTTR8X9iTqMskdBZkJafkaN0WeBhouqIe6QePPz2w3dRescyeZNibREeGXGz4Qe_NJeLdl2LEOWuw9ixW-0-NH0WbaytQy73D5oTygWdVzS編程

 

 

對於任何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全局對象便可。this

對於JavaScript程序中的this,若是this不屬於任何function,那麼這個this就指代JS全局對象;若是是瀏覽器端運行的JS程序,那麼這個this就指代window全局對象。url

若是這個this屬於某個function,那麼this指代的就是調用該function的對象。若這種狀況下function只是一個普通的函數,而不是某個類的方法,那麼this的指代存在兩種可能:

1.在ECMAScript 3標準,以及ECMAScript 5標準的非嚴格模式下,this指代全局對象。
2.在ECMAScript 5標準的嚴格模式下,this指代undefined。

--------------------- 本文來自 weixin_40133326 的CSDN 博客 ,全文地址請點擊:https://blog.csdn.net/weixin_40133326/article/details/79605945?utm_source=copy

javascript中若是宿主環境是web瀏覽器的話,通常全局對象是Window對象,它的引用是window。javascript中的內置全局對象(獨立於宿主環境,ECMAScript中的API中聲明的對象)例如Math對象,JSON對象等等。

在web中Window是全局對象,全局對象的屬性就是全局變量。

 

   聲明全局變量的4種方法。

 

   1.直接在全局做用域中用var 聲明的變量就是全局變量,此種方式聲明的變量具備不可配置的屬性,不能使用delete操做符把變量刪除。

 

   2.window.變量,這種聲明的變量也是全局變量,但這種變量跟上面用var 聲明的變量有點不同,這種方式聲明的全局變量是可配置的,所以能用delete操做符把變量刪除。

 

   3.隱式聲明全局變量,就是不使用var聲明,直接進行賦值的變量,在不嚴格模式中,至關於window.變量這種方式,但在嚴格模式下,會報錯。

 

   4.在html中給標籤指定一個id屬性,也至關於給Window對象添加了一個id的屬性,在javascript中可直接經過標籤的id訪問該標籤(或者window['id'])。

 

本文轉自https://www.cnblogs.com/smallLong/p/6535287.html

相關文章
相關標籤/搜索