Heim >Web-Frontend >js-Tutorial >Javascript spielt mit Vererbung (1)_Javascript-Fähigkeiten
Ich denke, jeder hat seine eigene Meinung darüber, ob Javascript eine objektorientierte Sprache oder eine Sprache ist, die Objekte unterstützt. Die treuen Fans von Javascript müssen sagen, dass Javascript eine objektorientierte Sprache ist. Das Buch „The Return of the King of Javascript“ beschreibt beispielsweise Javascript als objektorientiert, basierend auf Prototypen. Lassen Sie mich meine persönliche Meinung mitteilen. Die drei Merkmale Objektorientierung, Vererbung, Polymorphismus und Kapselung sind zwar nicht so schnell zu implementieren wie objektorientierte Sprachen wie Java und C#, bieten aber dennoch eine gewisse Unterstützung. Daher ist es sinnvoll zu sagen, dass Javascript eine objektorientierte Sprache ist. Aus Sicht der Vererbung gibt es jedoch eine Reihe von Vererbungsmethoden, aber jede Vererbungsmethode kann nicht die Leistungsfähigkeit einer echten objektorientierten Sprache realisieren. Es wird gesagt, dass es objektorientiert ist. Zusammenfassend ist mein Verständnis von Javascript so, dass ich es lieber als vereinfachtes objektorientiertes oder „Pseudo“-objektorientiertes (dieses Pseudowort hat keine abfällige Bedeutung) bezeichne.
Heute werden wir über das erste Merkmal der Objektorientierung sprechen: Vererbung.
Was ist Vererbung? Ich möchte darüber keinen Unsinn reden. Es gibt ein Tier, eine Person und ein Mädchen. Dies ist die einfachste und typischste Vererbungskette.
In objektorientierten Sprachen wie C# ist das einfach.
In Javascript gibt es also keine Klasse oder Vererbung, um die Implementierung bereitzustellen. Was sollen wir tun?
Objekttarnung (Konstruktionsvererbungsmethode)
Was ist Objekttarnung? Um das Verständnis zu erleichtern, könnten wir es strukturelle Vererbung nennen. Wie der Name schon sagt, verwenden Sie Konstruktoren, um mit der Vererbung zu spielen. Tatsächlich bedeutet dies, dass der Konstruktor der übergeordneten Klasse als gewöhnliche Methode betrachtet und im Konstruktor der Unterklasse ausgeführt wird. In diesem Fall kann das Objekt der Unterklasse beim Erstellen des Objekts natürlich die Methode des erstellen Elternklasse!
Unter Verwendung des obigen Beispiels lautet der Code wie folgt:
Code kopieren
Die Ergebnisse sind wie folgt:
a.
b.
c.
d.
z.B.
f.
Test erfolgreich!
Lassen Sie uns die wichtigsten Punkte dieses Codes zusammenfassen, die übergeordnete Klasse angeben, das übergeordnete Klassenobjekt deklarieren und dann die temporären Variablen löschen. Finden Sie es problematisch? Zumindest denke ich, dass man, wenn man das Löschen vergisst, immer noch das Risiko tragen muss, dass die übergeordnete Klasse geändert wird. Dafür verwenden wir call und apply, um dies zu verbessern!
Sehen wir uns den Code an, immer noch das obige Beispiel (um es für alle verständlicher zu machen, wurden die Anforderungen geändert, Animal hat einen Namen):
Wenn Sie ein Anfänger sind, sind Sie möglicherweise etwas verwirrt, nachdem Sie sich die folgenden beiden Codeteile angesehen haben: Was ist Aufruf und was ist Anwenden? Nun, zum Thema „Spielen mit Vererbung“ habe ich eine Ergänzungsreihe hinzugefügt. Wenn Sie das nicht verstehen, können Sie meinen Artikel „Spielen mit Methoden: Aufrufen und Anwenden“ lesen.
Objekttarnung ist nur eine Möglichkeit, Vererbung zu erreichen. Im nächsten Artikel werde ich weiterhin über andere Vererbungsmethoden und die Vor- und Nachteile verschiedener Vererbungsmethoden schreiben.