Почему комментарий является интерфейсом/классом?

#javascript #html #dom #comments

Вопрос:

Я новичок в веб-разработке, поэтому я читал МДН веб-Docs и хрома исходный код, чтобы понять, как JavaScript в дом элемент HTML внеучебной работе и реализуются и я узнал, что HTML-комментарий элементы на самом деле являются интерфейсы/классы (я не знаю, почему в МДН это называется интерфейса, если он имеет конструктор) (https://developer.mozilla.org/en-US/docs/Web/API/Comment). Почему это сделано таким образом? Разве это не пустая трата места?

Комментарии:

1. У многих веб Interface -типов есть конструкторы.

2. Я не думаю, что они используют термин «интерфейс» так же, как он используется в языках OO.

3. «Я новичок в веб-разработке, поэтому я читал […] исходный код Chromium» Вау! Ты самый сумасшедший новичок, которого я знаю (в хорошем смысле).

Ответ №1:

В отличие от многих языков, HTML-комментарии являются частью разметки. Вы можете динамически генерировать их и вставлять в DOM, точно так же, как вы можете это сделать с любым другим узлом.

Это потенциально может быть полезно, например, библиотекам, которые изменяют DOM, но хотят сохранить комментарии для удобства чтения. Некоторые фреймворки фактически используют комментарии, чтобы помочь им отслеживать различные узлы или списки узлов.

Вот пример того, как вы можете динамически генерировать комментарий в HTML-файле веб-страницы. если вы запустите эти две строки на любой веб-странице, вы найдете новый <!-- Hello World! --> комментарий в нижней части элемента body:

 const myComment = new Comment('Hello World!')
document.body.appendChild(myComment)
 

Возможность сохранения комментариев на самом деле не является уникальной для HTML, другие библиотеки анализа разметки предоставят вам такую возможность именно для целей их сохранения при динамическом изменении разметки. Например, посмотрите этот анализатор yaml, который автоматически сохранит комментарии для вас по мере их анализа.

Ответ №2:

«Интерфейс» (узла комментариев), на который ссылаются, — это описание его методов свойств и/или характера, предоставленное с использованием IDL («язык определения интерфейса») в спецификации. Другими словами, «интерфейс», используемый здесь, означает «то, что он раскрывает, если вообще что-то», и, следовательно, как он работает.

Будьте осторожны при интерпретации «интерфейса» в контексте определения IDL в контексте языка программирования — вся идея IDL заключается в том, чтобы разрешить написание спецификаций независимо от конкретных языков программирования.

Вы можете прочитать спецификацию интерфейса комментариев в спецификации DOM3 здесь.