Als ich anfing, JS zu lernen, habe ich mir die Implementierung der Erbschaft angesehen. Zu dieser Zeit habe ich nur versucht, die Codesegmente zu verstehen, die ich aus dem Buch gesehen habe. Ich habe es heute überlegt und hatte das Gefühl, dass dies das Ergebnis der Entwicklung des Denkens war.
Vererbung bedeutet Wiederverwendung.
Wenn Sie die inhärente Idee des Vererbung beiseite legen und die Mitglieder von A, den einfachsten und unhöflichsten Weg, dies zu tun, wiederverwenden lassen, b = a;
Dann lautet die Frage: Jede Änderung zu B ist eine Änderung zu A (das gleiche Objekt).
OK, dann kopieren Sie einen. Wenn die flache Kopie nicht sicher genug ist, verwenden Sie eine tiefe Kopie.
Problem: Der Code wird wiederverwendet, aber der Speicher wird verschwendet (unabhängig von Variablen oder Methoden ist es ein Objekt in JS).
Wenn Sie nicht kopieren, lesen und schreiben, können Sie den JS -Prototyp verwenden, b .__ proto__ = a. Im Allgemeinen ändern wir __Proto__ nicht direkt, es ist zu gewalttätig. JS bietet eine Methode, die das Ziel "sanfter" - Objekt.Create (B) erreichen kann.
Diese Methode ist machbar, aber dies ist nur ein Wiederverwendungsmodus für bestimmte Objekte. Was ist, wenn wir "das mit Constructorb erstellte Objekt erreichen können, um den Prototyp des Objekts der Konstruktora wiederzuverwenden"?
Die Antwort lautet: Behandle B als Konstruktorb.Prototyp und A als Constructora.Prototype.
Frage:
Lösung:
Beim Deklarieren von Constructorb wird das System automatisch Konstruktorb.Prototype.Constructor = constructorb gefragt. Im obigen Code wird der Konstruktor weggeworfen und der Konstruktor hinzugefügt.
Das obige ist das grundlegendste Erbe. Es liegt nicht im Rahmen dieses Artikels, wie Unterklassen den Konstruktor und die Mitglieder der übergeordneten Klasse allgemeiner (wie dies._Super) nennen, wie der Erbmodus allgemeiner (z.
Das obige ist der vollständige Inhalt des altmodischen Erbes von JavaScript-Klassen, die der Editor Ihnen mitbringt. Ich hoffe, jeder wird Wulin.com mehr unterstützen ~