DOM对象是javascript对象吗?

Unk*_*per 9 javascript dom

这是我无法找到官方答案的.对于某些人来说,DOM对象是JS对象,对于其他对象则不同.什么是正确的答案?通过在stackoverflow中搜索,您可能会看到有争议的意见.

例如,对象document.body是仅属于DOM API还是可以被视为javascript引擎的一部分?

Javascript是否创建了它的内部表示,还是只与DOM通信以访问它?

Que*_*tin 9

该DOM API是一个标准的集合,其具有在实现多种 编程 语言.

浏览器中可用于JavaScript的DOM以JavaScript对象的形式提供内容.它的大部分是用本机代码编写的(因此由不是用JavaScript编写但通过JavaScript API提供的库来处理).

JavaScript离开并且本机代码开始并不重要,它是一个实现细节,可能因浏览器而异.拥有标准API的关键在于使用它的开发人员与该API进行交互,而不必担心它是如何在幕后实现的.


The*_*est 5

严格来说,没有。JavaScript 运行时可以访问它们,并且在这种情况下,它们可以作为 JavaScript 对象运行。但是它们的定义方式不受任何特定语言的约束,并且在大多数 DOM 实现中,它们是本机代码。大多数 DOM 实现都小心翼翼地使对象以与所选语言中的其他对象相同的方式运行,但这并不总是与 JavaScript 对象相同的方式:例如,您不能四处添加动态属性在 Java 中工作时的对象。

对于大多数实际用途,当您在浏览器或其他一些 JavaScript 运行时中工作时, yes。如上所述,大多数 DOM 实现都试图使 DOM 对象以与语言中其他对象相同的方式工作,而对于 JavaScript,这意味着使它们像“真正的”JavaScript 对象一样工作。尽管 IE 需要一段时间才能真正做到这一点(您需要 IE9+ 才能充分利用),但现在您几乎可以像使用任何其他 JavaScript 对象一样使用 DOM 对象。