Soy un principiante en el desarrollo web, así que estaba leyendo MDN Web Docs y el código fuente de Chromium para comprender cómo funcionan y se implementan las clases de elementos HTML DOM de Javascript y descubrí que los elementos de comentarios HTML son en realidad interfaces/clases (no No sé por qué en MDN se llama interfaz si tiene un constructor) ( https://developer.mozilla.org/en-US/docs/Web/API/Comment ). ¿Por qué está hecho de esa manera? ¿No es una pérdida de espacio?
A diferencia de muchos idiomas, los comentarios HTML son parte del marcado. Puede generarlos dinámicamente e insertarlos en el DOM, tal como lo puede hacer con cualquier otro nodo.
Esto puede ser potencialmente útil, por ejemplo, para las bibliotecas que modifican el DOM pero desean conservar los comentarios con fines de legibilidad. Algunos marcos en realidad usan comentarios para ayudarlos a realizar un seguimiento de diferentes nodos o listas de nodos.
Aquí hay un ejemplo de cómo puede generar dinámicamente un comentario dentro del HTML de una página web. si ejecuta estas dos líneas en cualquier página web, encontrará un nuevo <!-- Hello World! --> comentario en la parte inferior del elemento del cuerpo:
const myComment = new Comment('Hello World!') document.body.appendChild(myComment)La capacidad de conservar comentarios en realidad no es exclusiva de HTML; otras bibliotecas de análisis de marcado le proporcionarán este tipo de capacidad, precisamente con el fin de conservarlos mientras modifica dinámicamente el marcado. Por ejemplo, vea este analizador yaml , que conservará automáticamente los comentarios mientras los analiza.
La "interfaz" (de un nodo de comentario) a la que se hace referencia es la descripción de sus propiedades, métodos y/o naturaleza proporcionada mediante IDL ("lenguaje de definición de interfaz") dentro de una especificación. En otras palabras, "interfaz", como se usa aquí, significa "lo que expone, en todo caso" y, por implicación, cómo funciona.
Tenga cuidado al interpretar "interfaz" en el contexto de una definición IDL en el contexto de un lenguaje de programación: la idea general de IDL es permitir que las especificaciones se escriban independientemente de los lenguajes de programación específicos.
Puede leer la especificación de la interfaz de comentarios en la especificación DOM3 aquí .