„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wann sollte die sofortige Instanziierung anonymer Klassen vermieden werden?

Wann sollte die sofortige Instanziierung anonymer Klassen vermieden werden?

Veröffentlicht am 08.11.2024
Durchsuche:928

When to Avoid Immediate Instantiation of Anonymous Classes?

Sofortige Instanziierung anonymer Klassen: Eine warnende Geschichte

In ES6 ist es möglich, anonyme Klassen zu definieren und sie sofort zu instanziieren. Obwohl diese Syntax auf den ersten Blick verlockend erscheinen mag, ist es wichtig, ihre Fallstricke zu verstehen und zu verstehen, warum sie generell vermieden werden sollte.

Um eine anonyme Klasse direkt zu instanziieren, verwenden wir die folgende Syntax:

var entity = new class {
    constructor(name) { this.name = name; }
    getName() { return this.name; }
}('Foo');

Hinter den Kulissen führt dies zur Erstellung einer neuen Konstruktorfunktion und eines Prototypobjekts für jede Instanziierung. Dies bedeutet, dass mehrere mit dieser Methode erstellte Objekte keinen Nutzen aus der Klassenvererbung oder prototypischen Beziehungen ziehen.

Darüber hinaus untergräbt dieser Ansatz Versuche, Singleton-Objekte mithilfe anonymer Klassen zu erstellen. Auf die Konstruktorfunktion kann weiterhin zugegriffen und diese zum Erstellen zusätzlicher Instanzen verwendet werden, wodurch das beabsichtigte Singleton-Verhalten zunichte gemacht wird.

Angesichts dieser Einschränkungen wird dringend empfohlen, die Verwendung sofort instanziierter anonymer Klassen zu vermeiden. Einfachere Objektliterale bieten eine effizientere und unkompliziertere Alternative:

var entity = {
    name: 'Foo',
    getName() { return this.name; }
};
Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729392136 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3