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