教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢/投訴熱線:400-618-4000

BOM有幾部分組成?BOM與DOM的區(qū)別是什么?

更新時(shí)間:2021年05月31日16時(shí)08分 來(lái)源:傳智教育 瀏覽次數(shù):

傳智教育-一樣的教育,不一樣的品質(zhì)


BOM提供了很多的對(duì)象。這些對(duì)象用于訪問(wèn)瀏覽器,被稱為瀏覽器對(duì)象。各內(nèi)置對(duì)象之間按照某種層次組織起來(lái)的模型統(tǒng)稱為瀏覽器對(duì)象模型,如圖1所示。

BOM的構(gòu)成

圖1 BOM構(gòu)成

從圖1中可以看出,BOM比DOM更大,它包含DOM(document)。BOM的核心對(duì)象是window,其他的對(duì)象稱為window的子對(duì)象,它們是以屬性的方式添加到window對(duì)象的。

window對(duì)象是瀏覽器頂級(jí)對(duì)象,具有雙重角色,既是JavaScript訪問(wèn)瀏覽器窗口的一個(gè)接口,又是一個(gè)全局對(duì)象,定義在全局作用域中的變量、函數(shù)都會(huì)變成window對(duì)象的屬性和方法。示例代碼如下。

   <script>

    // 全局作用域中的變量是window對(duì)象的屬性

    var num = 10;

    console.log(num);     // 結(jié)果為:10

    console.log(window.num); // 結(jié)果為:10

    // 全局作用域中的函數(shù)是window對(duì)象的方法

    function fn() {

     console.log(11);

    }

   fn();           // 結(jié)果為:11

   window.fn();       // 結(jié)果為:11

  </script>


在前面的知識(shí)中,之所以省略var也可以直接為一個(gè)未聲明的變量賦值,是因?yàn)檫@個(gè)變量自動(dòng)轉(zhuǎn)換為了window對(duì)象的屬性。前面學(xué)習(xí)的alert()、prompt()實(shí)際上都屬于window對(duì)象的方法,在調(diào)用的時(shí)候省略了前面的“window.”。由于window對(duì)象中本來(lái)就有一個(gè)name屬性,所以在全局作用域下聲明的變量不推薦使用name作為變量名,以避免和window對(duì)象的name屬性沖突。


BOM與DOM的區(qū)別:

DOM是文檔對(duì)象模型,把文檔當(dāng)作一個(gè)對(duì)象來(lái)看待,它的頂級(jí)對(duì)象是document,我們主要學(xué)習(xí)的是操作頁(yè)面元素。DOM是W3C標(biāo)準(zhǔn)規(guī)范。

BOM是瀏覽器對(duì)象模型,是把瀏覽器當(dāng)做一個(gè)對(duì)象來(lái)看待,它的頂級(jí)對(duì)象是window,我們主要學(xué)習(xí)的是瀏覽器窗口交互的一些對(duì)象。BOM是瀏覽器廠商在各自瀏覽器上定義的,兼容性較差。




猜你喜歡:

如何解決margin“塌陷”問(wèn)題?【前端面試題常問(wèn)】

常見(jiàn)的Javascript數(shù)據(jù)類型有哪些?

dom節(jié)點(diǎn)的Attribute和Property有何區(qū)別?

傳智教育前端與移動(dòng)開(kāi)發(fā)培訓(xùn)

0 分享到:
和我們?cè)诰€交談!