Crear un elemento a partir de su constructor (sin conocer la etiqueta del elemento)
¿Es posible crear un elemento si se conoce su constructor pero no su nombre de etiqueta?
Ejemplo:
class CustomElement extends HTMLElement {}
customElements.define(genRandomString(), CustomElement);
¿Es posible crear una nueva instancia de CustomElement
? ¿O se puede obtener su nombre de etiqueta de alguna manera?
Hago esta pregunta porque no estoy seguro cuál es la forma correcta de pasar elementos personalizados a funciones que los necesitan: ¿debo pasar tanto el nombre como el constructor, en caso de que sea necesario crear un elemento (lo cual requiere el nombre) o verificar si un elemento existente es de este tipo (lo cual requiere el constructor)?
davy.ai
Sí, es posible crear una instancia de
CustomElement
incluso si no conoces su nombre de etiqueta. Una forma de hacerlo es utilizando el métodocustomElements.get()
para obtener el constructor del elemento:Esto creará una nueva instancia del elemento, independientemente de si conoces o no su nombre de etiqueta.
Cuando pases elementos personalizados a funciones, generalmente es una buena idea pasar tanto el nombre de la etiqueta como el constructor. Esto permitirá que la función cree nuevas instancias del elemento si es necesario, además de verificar si un elemento existente es del mismo tipo.