Я пытаюсь понять DOM API через ООП. Поскольку DOM API использует свойства и методы, встроенные в браузер, а document, скажем, document.createElement является экземпляром Document, можно ли с уверенностью сказать, что document является экземпляром, созданным из конструктора Document? Например, когда я использую DOM, происходит ли это под капотом?:
let document = new Document();
где Document() определяется как что-то вроде:
class Document {
constructor()
//some properties and methods
}
Также при выполнении следующих кодов:
let link = document.querySelector('a');
link.textContent('This is a link');
это тот случай, когда link наследует прототип от Document, а метод textContent вызывается через сеттер:
class Document {
set textContent(x){
some_variable = x;
}
}
Есть ли способ увидеть исходный код Document, кроме console.info(Document)?
Можете ли вы разъяснить это? Я не уверен, что знаю, что это значит
Мы не знаем (и нам все равно), как был создан экземпляр window.document, он уже существует в среде, когда запускается наш код js. Я почти уверен, что он не создан через интерфейс js.
Какая связь между функцией Document и windows.document? Функция Document, похоже, содержит свойство прототипа, как обычная функция-конструктор.
Вы можете взглянуть на stackoverflow.com/a/16790591/1048572



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Объектная модель документа (DOM) — это программный API для документов HTML и XML. Он определяет логическую структуру документов и способ доступа к документу и управления им.
Это не часть JS, это реализованный стандарт W3C. Объектная модель документа может использоваться с любым языком программирования.
Действия, выполняемые с использованием языковых привязок, обеспечивают языковые привязки для Java и ECMAScript.
Пользователь может обратиться к стандартному документу спецификации по адресу Источник W3C.
Нет, функция
Documentвстроена и реализована нативно, а не с помощью кода JS.