JavaScript之DOM对象与BOM对象的关系

BOM对象

  • JavaScript向程序员提供了一种操作Web浏览器的手段,例如,Javascript语言可以用来调整Web浏览器窗口的高度,宽度和屏显位置等属性。(引用自JavaScript+DOM编程艺术)
  • JavaScript是一门基于对象的脚本语言,因此它要做某些操作的话必须要有一些对象。
  • 基于以上两者之间的联系,可以这样进行理解:BOM对象是JavaScript为了操作WEB浏览器本身的一些属性而产生的对象。注意,BOM对象的重点及核心 是对浏览器进行操作的。window对象对应着浏览器窗口本身,这个对象的属性和方法被统称为BOM。用户通过js代码,操作window对象或其属性,例如:Screen,location,history,navigator等进而操作与用户屏幕、当前页面URL、浏览器历史记录、访问者浏览器信息等与浏览器相关的属性。
  • 特别注意:window对象为宿主对象,即web浏览器提供的js对象,怎么说呢,类比于Java,JDK本身内置了诸如FileInputStream、Math、System等类,JavaScript中的Math、Array、Date就相当于JavaScript本身自带的对象,叫做内置对象;但是当一个由Java编写的web应用运行到tomcat服务器中时,tomcat本身又提供了servlet-api.jar等jar包,这些jar包中又包含了很多的类。web浏览器中包含的window对象等就相当于扩展的对象。就是宿主对象。

DOM对象

  • 简单的说,DOM是一套对文档的内容进行抽象和概念化的方法。
  • 一个与系统平台和编程语言无关的接口,程序和脚本可以通过这个接口动态地对文档的内容、结构和样式进行访问和修改。简单来讲,DOM是一种API(应用编程接口)。
  • 由以上两点可以很明显的看出,DOM并不隶属于任何一种语言,它是独立于各个语言之外的一种接口,一组基本约定,若是什么程序语言想要对标记语言或文档(主要是HTML和XML)进行解析的时候,必须要对这种接口进行具体的实现。
  • 很明显,JavaScript对DOM进行了实现,对应于js中的document对象,通过该对象对DOM文档进行程序级别的控制。

总结

  • BOM对象主要是对浏览器相关属性进行操作,在js中对应的顶级对象为window。
  • DOM对象是一种接口,用来操作文档的内容,在js中实现后对应的顶级对象为document。
  • 若说联系的话,document对象为window对象的子对象,仅此而已。

你可能感兴趣的:(JavaScript)