Heim  >  Artikel  >  Web-Frontend  >  Wie instanziiere ich JavaScript-Objekte mit dynamischen Klassennamen?

Wie instanziiere ich JavaScript-Objekte mit dynamischen Klassennamen?

Barbara Streisand
Barbara StreisandOriginal
2024-10-22 13:59:02116Durchsuche

How to Instantiate JavaScript Objects with Dynamic Class Names?

JavaScript-Objekte mit dynamischen Klassennamen instanziieren

Das dynamische Erstellen von JavaScript-Objekten mithilfe einer Zeichenfolgenvariablen zur Definition des Klassennamens stellt eine einzigartige Herausforderung dar. Lassen Sie uns das von Ihnen beschriebene Szenario analysieren und eine mögliche Lösung untersuchen.

In Ihrem Pseudocode versuchen Sie, eine Klasse mit dem Variablennamen MyClass zu definieren, den Klassennamen in der String-Variablen classNameString zu speichern und ein Objekt mit zu instanziieren Diese Zeichenfolge als Klassenname.

Dieser Ansatz stößt auf Einschränkungen im Objektinstanziierungsmechanismus von JavaScript, der einen direkten Verweis auf die Klassenkonstruktorfunktion erfordert. Da Sie den Klassennamen als Zeichenfolge gespeichert haben, können Sie nicht direkt auf den Klassenkonstruktor zugreifen.

Um dieses Problem zu umgehen, können Sie einen indirekten Ansatz verwenden:

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

In diesem Code:

  • window ist das globale Objekt in JavaScript, das eine Eigenschaft für jede definierte Klasse hat.
  • Die Klammernotation [] wird verwendet, um auf die Eigenschaft zuzugreifen, die dem classNameString entspricht.
  • Wenn eine Klasse mit dem in classNameString gespeicherten Namen vorhanden ist, ruft der Code sie ab und weist sie myObject zu.

Mit dieser Technik können Sie Objekte mithilfe einer zu definierenden Zeichenfolgenvariablen dynamisch instanziieren der Klassenname. Denken Sie daran, dass dieser Ansatz davon ausgeht, dass die Klasse bereits definiert und über das globale Fensterobjekt zugänglich ist.

Das obige ist der detaillierte Inhalt vonWie instanziiere ich JavaScript-Objekte mit dynamischen Klassennamen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn