es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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)?

Tags:  , , , ,

Answer

  1. Avatar for 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étodo customElements.get() para obtener el constructor del elemento:

    const constructor = customElements.get('nombre-etiqueta-custom-element');
    const elemento = new constructor();
    

    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.

Comments are closed.