In JavaScript gibt es kein Vererbungsschlüsselwort: „extends“. Welche Methoden werden also verwendet, um Attribute des Objekts basierend auf einem anderen Konstruktor zu generieren (zu erben/kopieren), wenn ein Konstruktor zum Generieren eines Objekts verwendet wird? Das heißt: Wenn Sie das Schlüsselwort new für eine Funktion verwenden, um ein Objekt zu generieren, können die Eigenschaften des Objekts von anderen Funktionen stammen.
Dieser Artikel bietet zwei Schreibweisen:
Die erste (informelle):
Aber Sie müssen diese Verwendung verstehen.
Javascript-Code
Funktion Tier (Name, Alter){
this.name = name;
this.age = Alter; (Name, Alter);
}
d = neuer Hund('hello',20); >console .log(d);
/*
Hund {Name: „Hallo“, Alter: 20}
Alter: 20
i: Funktion Tier(Name, Alter)
Name: „Hallo“
__proto__:
Konstruktor: functionDog(name , Alter)
*/
Die obige Schreibweise besteht darin, die äußere Funktion Tier als eine ihrer eigenen inneren zu bezeichnen Mitgliedsfunktionen.Dies ist eine Möglichkeit, eine anonyme Funktion zu schreiben.
entspricht:
Javascript-Code Funktion Hund (Name, Alter){ this.i = Funktion Tier (Name, Alter){ this.name = Name; this.age = Alter
}
this.i(name, age
}
Javascript-Code
Funktion Hund (Name, Alter){
/*
Wenn Sie eine Funktion aufrufen, verwenden Sie nicht das Schlüsselwort „new“, um ein
-Objekt zu erstellen,
// Aufrufen von a Funktion
Animal();
Denken: Wer ist „dies“ beim Aufruf einer Funktion? ?
Da der Funktionsaufruf das „this“-Objekt nicht generiert.
Ist es also nicht möglich, Animal direkt in Dog aufzurufen?
Antwort: Nein
Java-Code
/*
Zu welchem „dies“ die aufgerufene Funktion gehört, das innere „dies“ darin von
bezieht sich die aufgerufene Funktion auf das „dieses“ Objekt
*/
Funktion Hund (Name, Alter){ // wenn aufgerufen Animal direkt,
Animal(name,age); // die Animal-Funktion gehört hier zu „window“,
} // also „this“ innerhalb von Animal-Referenzen auf „window“
Zweitens (formal):
Apply()-Funktion oder call()-Funktion verwenden
apply(): „dieses“ Objekt anwenden auf die (diese) Funktion anwenden, dann „dieses“ Objekt auf die Animal-Funktion anwenden. // Objekt, statt zu verweisen zu other 'this'.
}
d = new Dog('hello',20);
console.log(d); }
Alter: 20
Name: „Hallo“
__proto__:
Konstruktor: Funktion Hund (Name, Alter)
*/