1. Was ist ein Konstruktor
In einigen objektorientierten Sprachen wie Java, C und PHP sind Konstruktoren sehr verbreitet. In Javascript ist der Konstruktor zunächst eine gewöhnliche Funktion, die mit dem new-Operator aufgerufen werden kann und ein Objekt eines speziellen Typs generiert.
Im obigen Beispiel ist Benjamin ein Benjamin-Objekt. Wie wird es also instanziiert?
Wie wir sehen können, empfängt der „Benjamin“-Konstruktor einfach die übergebenen Parameter und weist sie diesem Objekt zu. Dies liegt daran, dass beim Aufruf des Konstruktors durch den neuen Operator diesem Objekt des Konstruktors das von der neuen Operation zurückgegebene Objekt zugewiesen wird.
Dies bedeutet, dass der obige Code äquivalent ist zu:
2. Warum Konstruktor verwenden
Es gibt mehrere Gründe, warum Konstruktoren verwendet werden:
1. Die Verwendung von Konstruktoren bedeutet, dass alle diese Objekte mit derselben Grundstruktur
erstellt werden können
2. Die Verwendung eines Konstruktors bedeutet, dass das „benjamin“-Objekt explizit als Instanz der „Benjamin“-Funktion
3. Durch die Verwendung von Konstruktoren können wir öffentliche Methoden für den Prototyp definieren, die von mehreren Instanzen gemeinsam genutzt werden können
3. Vorsichtsmaßnahmen
1.neues Schlüsselwort
Vergessen Sie nicht, beim Instanziieren des Konstruktors das neue Schlüsselwort zu verwenden. Es hat einen großen Einfluss auf das Objekt „this“. Ohne das Schlüsselwort „new“ verweist das Objekt auf das globale Objekt (Fenster im Browser und global). Knoten). Daher wird beim Definieren eines Konstruktors empfohlen, den ersten Buchstaben des Funktionsnamens groß zu schreiben.
2. Wenn die aufgerufene Funktion keinen expliziten Rückgabeausdruck hat, gibt sie implizit dieses Objekt zurück, also das neu erstellte Objekt. Andernfalls wirkt sie sich auf das zurückgegebene Ergebnis aus, jedoch nur, wenn sie ein Objekt
Worauf wir achten müssen, ist:
a) new Bar() gibt das neu erstellte Objekt zurück, nicht den Literalwert der Zahl 2. Daher new Bar().constructor === Bar, aber wenn ein numerisches Objekt zurückgegeben wird, ist das Ergebnis anders;
b) Der hier erhaltene neue Test() ist das von der Funktion zurückgegebene Objekt, nicht das neu erstellte Objekt über das neue Schlüsselwort, wie unten gezeigt:
Das Obige ist eine Zusammenfassung der Konstruktorfunktion. Ich hoffe, dass es für Anfänger hilfreich ist. Wenn der Artikel etwas Unangemessenes enthält, werden Sie es kritisieren und korrigieren.