更新時間:2021年05月31日16時08分 來源:傳智教育 瀏覽次數(shù):
圖1 BOM構成
從圖1中可以看出,BOM比DOM更大,它包含DOM(document)。BOM的核心對象是window,其他的對象稱為window的子對象,它們是以屬性的方式添加到window對象的。
window對象是瀏覽器頂級對象,具有雙重角色,既是JavaScript訪問瀏覽器窗口的一個接口,又是一個全局對象,定義在全局作用域中的變量、函數(shù)都會變成window對象的屬性和方法。示例代碼如下。
<script>
// 全局作用域中的變量是window對象的屬性
var num = 10;
console.log(num); // 結果為:10
console.log(window.num); // 結果為:10
// 全局作用域中的函數(shù)是window對象的方法
function fn() {
console.log(11);
}
fn(); // 結果為:11
window.fn(); // 結果為:11
</script>
在前面的知識中,之所以省略var也可以直接為一個未聲明的變量賦值,是因為這個變量自動轉換為了window對象的屬性。前面學習的alert()、prompt()實際上都屬于window對象的方法,在調用的時候省略了前面的“window.”。由于window對象中本來就有一個name屬性,所以在全局作用域下聲明的變量不推薦使用name作為變量名,以避免和window對象的name屬性沖突。
BOM與DOM的區(qū)別:
DOM是文檔對象模型,把文檔當作一個對象來看待,它的頂級對象是document,我們主要學習的是操作頁面元素。DOM是W3C標準規(guī)范。
BOM是瀏覽器對象模型,是把瀏覽器當做一個對象來看待,它的頂級對象是window,我們主要學習的是瀏覽器窗口交互的一些對象。BOM是瀏覽器廠商在各自瀏覽器上定義的,兼容性較差。
猜你喜歡:
常見的Javascript數(shù)據(jù)類型有哪些?