DOM对象是否是常规Javascript对象?如果没有,他们是什么?
答案 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。