javascript - DOM 对象是在哪里诞生的?

标签 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 对象是在浏览器引擎(例如 Gecko)中创建的。这是用 C++ 编写的。它们继承自classesNode、Element、HTMLElement 因此,Node 和 HTMLElement 似乎是宿主对象。换句话说,它们是浏览器引擎Gecko的组成对象,而不是JS引擎的对象。 Gecko 内置类的某种实例。

  • 但是接口(interface)定义语言到底是什么?
  • 请告诉我我的理解哪里错误

    最佳答案

    Please tell me where are DOM objects are kept.

    除非您正在编写浏览器,否则这是一个无关紧要的实现细节。

    How can these DOM-objects let create user-defined properties, that can bee "seen" in JS engine, if DOM-objects "live" not in JS engine?

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

    But what the heck is Interface Definition Language?

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

    关于javascript - DOM 对象是在哪里诞生的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46094613/

    相关文章:

    javascript - 从方法中查询 Windows 8 应用程序中的 DOM

    Java:使用 DOM 和 unescapeHtml4() 生成 XML

    javascript - CoffeeScript 函数问题

    java - 在 Java 应用程序中嵌入类似浏览器的 View 并与之交互

    javascript - HTML5 API 与 HTML5 Javascript API

    javascript - 使用 javascript 在 web View 中与网页通信

    javascript - 迭代时为 DOM 事件监听器分配变量

    javascript - jQuery 在悬停/鼠标离开时淡入和淡出另一个 div 而不闪烁

    javascript - jquery点击事件不会触发

    javascript - IE9 中的 XML DOM childNode 不支持 for..in 语句?