Maison  >  Article  >  interface Web  >  Comment instancier des objets JavaScript avec des noms de classe dynamiques ?

Comment instancier des objets JavaScript avec des noms de classe dynamiques ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-22 13:59:02116parcourir

How to Instantiate JavaScript Objects with Dynamic Class Names?

Instancier des objets JavaScript avec des noms de classe dynamiques

Créer des objets JavaScript de manière dynamique à l'aide d'une variable de chaîne pour définir le nom de la classe présente un défi unique. Analysons le scénario que vous avez décrit et explorons une solution potentielle.

Dans votre pseudo-code, vous essayez de définir une classe avec le nom de variable MyClass, de stocker le nom de la classe dans la variable chaîne classNameString et d'instancier un objet en utilisant cette chaîne comme nom de classe.

Cette approche est confrontée à des limitations dans le mécanisme d'instanciation d'objet de JavaScript, qui nécessite une référence directe à la fonction constructeur de classe. Comme vous avez stocké le nom de la classe sous forme de chaîne, vous ne pouvez pas accéder directement au constructeur de la classe.

Pour contourner ce problème, vous pouvez utiliser une approche indirecte :

<code class="javascript">var myObject = window[classNameString];</code>

Dans ce code :

  • window est l'objet global en JavaScript, qui possède une propriété pour chaque classe définie.
  • La notation entre crochets [] est utilisée pour accéder à la propriété correspondant à la classNameString.
  • Si une classe avec le nom stocké dans classNameString existe, le code la récupérera et l'attribuera à myObject.

En utilisant cette technique, vous pouvez instancier dynamiquement des objets à l'aide d'une variable de chaîne pour définir le nom de la classe. N'oubliez pas que cette approche suppose que la classe est déjà définie et accessible via l'objet window global.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn