Heim >Web-Frontend >js-Tutorial >Detaillierte Erläuterung des Javascript-Konstruktors_Grundkenntnisse

Detaillierte Erläuterung des Javascript-Konstruktors_Grundkenntnisse

WBOY
WBOYOriginal
2016-05-16 16:33:071432Durchsuche

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.

Code kopieren Der Code lautet wie folgt:

// „Benjamin“ ist ein Konstruktor
var benjamin = neuer Benjamin("zuojj", "männlich");

Im obigen Beispiel ist Benjamin ein Benjamin-Objekt. Wie wird es also instanziiert?

Code kopieren Der Code lautet wie folgt:

Funktion Benjamin(Benutzername, Geschlecht) {
This.username = Benutzername;
This.sex = Sex;
}
var benjamin = neuer Benjamin("zuojj", "männlich");
//Ausgaben: Benjamin{sex: "male",username: "zuojj"}
console.log(benjamin);

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:

Code kopieren Der Code lautet wie folgt:

benjamin = {
„Benutzername“: „zuojj“,
„Geschlecht“: „männlich“
}

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

markiert wird

Code kopieren Der Code lautet wie folgt:

Funktion Benjamin(Benutzername, Geschlecht) {
This.username = Benutzername;
This.sex = Sex;
}
var benjamin = neuer Benjamin("zuojj", "männlich");
var ben = {
„Benutzername“: „zuojj“,
„Geschlecht“: „männlich“
}
//Ausgaben: true
console.log(benjamin-Instanz von Benjamin);
//Ausgaben: false
console.log(ben Instanz von Benjamin);

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

Code kopieren Der Code lautet wie folgt:

Funktion Benjamin(Benutzername, Geschlecht) {
This.username = Benutzername;
This.sex = Sex;
}
Benjamin.prototype.getName = function() {
return this.username;
}
var benjamin = neuer Benjamin("zuojj", "männlich");
var ben = new Benjamin("lemon", "female");
//Ausgaben: zuojj
console.log(benjamin.getName());
//Ausgaben: Zitrone
console.log(ben.getName());

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

zurückgibt

Code kopieren Der Code lautet wie folgt:

Funktion Bar() {
Rückgabe 2;
}
var bar = new Bar();
//Das neu erstellte Objekt zurückgeben
//Ausgaben: Bar {}
console.log(bar);
Funktion Test() {
This.value = 2;
Geben Sie {
zurück foo: 1
};
}
var test = new Test();
//Zurückgegebenes Objekt
//Ausgaben: Objekt {foo: 1}
console.log(test);

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:

Code kopieren Der Code lautet wie folgt:

Funktion Bar() {
Rückgabe 2;
}
var bar = new Bar();
Funktion BarN() {
neue Zahl(2) zurückgeben;
}
var barn = new BarN();
//Ausgaben: true
console.log(bar.constructor === Bar);
//Ausgaben: Zahl {}
console.log(barn);
//Ausgaben: false
console.log(barn.constructor === BarN);
//Ausgaben: true
console.log(barn.constructor === Number);
/*-------------------------------------------- */
Funktion Test() {
This.value = 2;
Geben Sie {
zurück foo: 1
};
}
var test = new Test();
//Ausgaben: undefiniert
console.log(test.value);
//Ausgaben: 1
console.log(test.foo);

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.

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