举个小例子,
在Javascript中有窗口对象Window、历史对象History等等吧,而在Html Dom也有这样的对象,它们的属性与方法大部份相同,但也有不同;
而我看的一些资料上,是这样说的:一个html页面,被分析成一个树形结构,即文档对象模型,也就是DOM,任何一种支持DOM的程序设计语言都可以通过DOM这个接口对HTML页面文档中所有元素进行操作;如JavaScript就通过DOM这个接口来访问和操作HTML文档。不明白的是既然Javascript通过html dom接口来访问和操作html文档,那为什么在Javascript语言中又内置了或着说存在Window等这些对象,这些对象不是在Html Dom中不是已经定义了吗,更晕的是Javascript中的一些对象与Html Dom中的一些对象,都描述的是同一个对象,但它们的属性与方法怎么会略有不同?要疯了,不明白……

解决方案 »

  1.   

    DOM,是指文档对象模型,即:Document Object Model,他只是一种文档结构的模型,用白话说,就是一个文档,他应该包括哪些东西,以一个什么样的结构存在。dom,既然是一种模型,那么他就不仅仅限制于JavaScript可以去实现他,在很多语言里,都可以直接进行dom的相关操作。javascript中的dom实现,只是这种语言对于dom的实际应用
      

  2.   

    有时间学习学习firefox源码?当你用document这个对象时,浏览器会配合将当前整个page以一定的形式放到这个对象中。当你用window时也类似。有些对象是和网页相关的,有些对象是js本身的,例如regexp。
    html dom只是个模型,大家都按照这个规则实现成这么个东西,可以给其他应用程序使用。例如vb中的webbrowser,用webbrowser1.document就相当于js中的document。
      

  3.   

    跪求镐与矿之间的差别。。
    镐可以用来挖矿,但是镐不一定只能用来挖矿。
    DOM楼上有解释。
    在浏览器中,我们多数用js来操作DOM和BOM。名字解释见百度百科。
    同事js还可以作为windows内置脚本,进行一些系统编程。
    还可以作为ASP、ASP.NET的编程脚本。
    javascript是一种脚本语言。
    DOM是 文档对象模型(Document Object Model);
      

  4.   

    DOM  BOM ECMASCRIPT 
      

  5.   

    看来是那些破书误导楼主了。
    JS里很简单的,只有Math、Date等一些内置对象。
    你说的window。是属于BOM的
    也可以归到DOM里,
    总之浏览器的操作都是属于BOM的,
    对文档内容的操作都是属于DOM的,
    JS只是跟他们要接口,然后才进行操作的。
      

  6.   

    js是一种脚本语言
    DOM是指环境
      

  7.   

    1:浏览器(Browser)是由窗口(Document)、工具栏、菜单栏、搜索地址、状态栏等组成。
    2: 当我们用浏览器打开一个html文档,我们在浏览器窗口看到的就是网页,在窗口上右键点击可以看到这个html文档的源代码。
    3:BOM/DOM可以看作是一种接口。其中BOM可以看成浏览器上的各种内容在内存中的映射的树状结构、DOM可以看成浏览器窗口中的网页(html文档)内容在内存中映射的树状结构。其中BOM包括的范围要大于DOM的范围。
    3:Javascript是由ECMAScript、DOM、BOM三部分组成。其中ECMAScript规定Javascript语法等;DOM、BOM是Javascript为了操纵上面的DOM树、BOM树而自己的实现各类对象。比如XML DOM节点树是由节点构成的,Javascript为了操纵上它的节点树提供了节点类对象,而节点类包括了文档、元素、注释、属性、文本等类型(Node是父类,它的子类有Document、Element、Comment、Attribute、TextNode等)。
    4:HTML和XML区别自己查去。
      

  8.   

    不太同意,javascript就是javascript,那些DOM、BOM不属于javascript,只是属于javascript的操作对象,就像你用js写一个function,这个function只是js的调用对象,并不是js的一个组成部分。js在node.js中的服务器逻辑完全脱离BOM,照样被称之为javascript。js最好不要和dom、bom混在一起,js只是因为经常在使用中用到这些对象,并不是说他们已经合体了。