DOM对象是什么类型的对象?

时间:2012-05-10 16:16:01

标签: javascript dom

DOM对象是否是常规Javascript对象?如果没有,他们是什么?

5 个答案:

答案 0 :(得分:4)

  

DOM对象是否是reguler Javascript对象?如果没有,他们是什么?

不,它们是“主机对象”。它们不一定遵循与本机JavaScript对象相同的所有规则。

它们在某种意义上是对象,但它们是由主机环境添加的,并不是ECMAScript规范的一部分。

例如,我不相信有任何要求他们接受expando属性的东西。或者在函数的情况下,我不知道它们需要具有可访问和可扩展的prototype属性。

此外,功能可能有也可能没有Function.prototype的典型方法,例如.call().apply()

规则比ECMAScript规范定义的对象简单得多,因此在所有情况下都不一定依赖相同的行为。

答案 1 :(得分:3)

它们属于HTMLElement

类型

答案 2 :(得分:3)

是的,他们是:

> typeof document.body
"object"
> document.body instanceof Object
true

答案 3 :(得分:3)

以下是Mozilla Development Network

中Documnet对象模型(DOM)的说明
  

文档对象模型是HTML和XML文档的API。它   提供文档的结构表示,使您能够   修改其内容和视觉呈现。基本上,它连接起来   网页到脚本或编程语言。

     

网络可用的所有属性,方法和事件   用于操作和创建网页的开发人员被组织成   对象(例如,表示文档的文档对象)   本身,表示HTML表元素的表对象,等等   向前)。在大多数情况下,这些对象可通过脚本语言访问   最近的网络浏览器。

     

DOM通常与JavaScript结合使用。那是,   代码是用JavaScript编写的,但它使用DOM来访问   网页及其元素。但是,DOM被设计为   独立于任何特定的编程语言,制作   单个文件的结构表示,   一致的API。虽然我们专注于整个网站的JavaScript,   可以为任何语言构建DOM的实现。

     

万维网联盟为DOM建立了一个标准,   称为W3C DOM。它应该,现在是最重要的浏览器   正确实现它,启用强大的跨浏览器应用程序。

答案 4 :(得分:0)

DOM是一个API,因此一组预定义的“对象”附加到窗口“命名空间”。 它可以是HTMLElements但不仅仅是它们不是javascript核心的一部分。 所以有javascript核心和DOM,你可以拥有其他APIS。