zoukankan      html  css  js  c++  java
  • DOM与BOM

    Dom相当于把html页面结构解析成一个对象,提供一个接口API,让你去操作所有的节点。其实就是document对象,没发现所有的页面元素选择基本上都是从document衍生出来的嘛。
    此外,Bom基本上就是指当前窗口对象,就是window对象啦。你看document也是挂在window对象了。什么关于窗口的一些东西都是挂在window的了,比如alert之类的。



    作者:知乎用户
    链接:https://www.zhihu.com/question/20724662/answer/15975186
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    Document Object Model(文档对象模型),就是把「文档」当做一个「对象」来看待。
    相应的,Browser Object Model(浏览器对象模型),即把「浏览器」当做一个「对象」来看待。

    在 DOM 中,文档中的各个组件(component),可以通过 object.attribute 这种形式来访问。一个 DOM 会有一个根对象,这个对象通常就是 document。

    而 BOM 除了可以访问文档中的组件之外,还可以访问浏览器的组件,比如问题描述中的 navigator(导航条)、history(历史记录)等等。

    在这种 「XOM」的模型中,最应该理解的就是 Object Model。Object Model 就表示你可以通过像操作对象一样,来操作这个 X。

    再解释一下什么是对象(Object)。

    在编程领域中,对象就是指的一种拥有具体数据(Data)并且具有(并不总是)特定行为(Behavior)的东西。例如,一个人 ,就可以看做一个对象。人的年龄、性别、身高、体重就是上文说的具体「数据」,通常将对象拥有的具体数据称作对象的「属性(Attribute)」;而人吃饭,睡觉,行走等能力,就是上文所说的「行为」,通常,我们把对象的行为称作对象的「方法(Method)」。另外,对象是可以嵌套的,也就是是说,一个对象的属性也可以是对象。

    上文所说的「像操作对象一样」,最主要就是指访问对象的属性和调用对象的方法。对象的属性可以通过 object.attribute 这种形式来访问,对象的方法可以通过 object.method(arguments) 这种形式来调用。

    对应到 DOM 中,document 这个根对象就有很多属性,例如 title 就是 document 的一个属性,可以通过 document.title 访问;document 对象也有很多方法,例如 getElementById,可以通过 document.getElementById(nodeId) 调用。
  • 相关阅读:
    代码外的软技能——吉他自学过程
    利用栈实现括号匹配(python语言)
    django框架--登录注册功能(ajax)
    ajax的get请求
    docker 制作自己的镜像
    Mysql group by之 Error 1055
    ssh 远程连接
    python实现--九九乘法表
    mysql5.7安装和卸载过程
    javascript随机变色--案例
  • 原文地址:https://www.cnblogs.com/feng9exe/p/6675086.html
Copyright © 2011-2022 走看看