DOM对象诞生在哪里?

时间:2017-09-07 10:58:08

标签: javascript dom

请告诉我DOM对象的保存位置。似乎浏览器的某些部分(渲染引擎或浏览器引擎)创建它们并保留它们。 例如,如果我们在HTML文档中有一个标记,则创建DOM对象,该对象从对象HTMLInputElement,HTMLElement,Element,Node,EventTarget,Object继承属性和方法。我不清楚它们来自哪里,似乎不是来自Javascript引擎。

我无法理解。有人说DOM对象是Javascript对象,但并不多。纯JS对象是在JS引擎中创建的。但是DOM是用C ++编写的,允许像其他JS对象一样使用DOM对象。 DOM对象看起来像JS语言中的其他对象,并且像真正的JS对象一样工作。

如果DOM对象“存在”不在JS引擎中,这些DOM对象如何创建用户定义的属性,这些属性可以在JS引擎中“看到”?

我得出结论,DOM对象是在浏览器引擎(ex Gecko)中创建的。哪个是用C ++编写的。它们继承自classesNode,Element,HTMLElement 所以看来,Node和HTMLElement--是宿主对象。换句话说,它们是浏览器引擎Gecko的组成对象,而不是JS引擎的对象。某种Gecko内置类的实例。

  1. 但界面定义语言究竟是什么?
  2. 请告诉我理解错误的地方

1 个答案:

答案 0 :(得分:3)

  

请告诉我DOM对象的保存位置。

除非您正在编写浏览器,否则这个实现细节很重要。

  

这些DOM对象如何创建用户定义的属性,这些属性可以被看到"在JS引擎中,如果DOM对象"生活"不是在JS引擎中?

浏览器提供了一个API,将它们暴露给JS引擎。

  

但界面定义语言究竟是什么?

一种描述API的方法,以便您了解(例如)某种对象上可用的方法。