ECMAScript是JavaScript的核心,但如果要在Web中使用JavaScript,那么BOM(瀏覽器對象模型)則無疑才是真正的核心。BOM提供了很多對象,用于訪問瀏覽器的功能,這些功能與任 何網(wǎng)頁內(nèi)容無關(guān)。缺少事實上的規(guī)范導(dǎo)致BOM既有意思又有問題,因為瀏覽器提供商會按照各自的想法隨意去擴(kuò)展它。于是,瀏覽器之間共有的對象就成為了事實上的標(biāo)準(zhǔn)。這些對象在瀏覽器中得以存在,很大程度上是由于它們提供了與瀏覽器的互操作性。沒有所謂的標(biāo)準(zhǔn)BOM實現(xiàn)或者標(biāo)準(zhǔn)BOM接口。
window對象
BOM的核心對象是window,它表示瀏覽器的一個實例。在瀏覽器中,window對象有雙重角色,它既是通過JavaScript訪問瀏覽器窗口的一個接口,又是ECMAScript規(guī)定的Global對象。這意味著在網(wǎng)頁中定義的任何一個對象、變量和函數(shù),都以window作為其Global對象,因此有權(quán)訪問parselnt()等方法。
全局作用域
由于window對象同時扮演著ECMAScript中Global對象的角色,南昌網(wǎng)絡(luò)公司工程師提醒大家,所有在全局作用域中聲明的變量、函數(shù)都會變成window對象的屬性和方法。來看下面的例子:
var age=29;
function sayAge(){
alert( this.age);
}
alert (window. age); //29
sayAge(); //29
window.sayAge(); //29
我們在全局作用域中定義了一個變量age和一個函數(shù)sayAge(),它們被自動歸在了window對象名下。于是,可以通過window.age訪問變量age,可以通過window.sayAge()訪問函數(shù)sayAge()。由于sayAge()存在于全局作用域中,南昌建網(wǎng)站公司技術(shù)員提示,this.age被映射到window.age,最終顯示的仍然是正確的結(jié)果。
明白了這一點(diǎn),就容易理解為什么本章后面將要討論的很多全局JavaScript對象(如location和navigator)實際上都是window對象的屬性了。
本文僅限內(nèi)部技術(shù)人員學(xué)習(xí)交流,不得作于其他商業(yè)用途.文章出自:南昌網(wǎng)站建設(shè)公司-百恒網(wǎng)絡(luò) http://m.iotmicrosoft.com 如轉(zhuǎn)載請注明出處!