JavaScript-Vererbung umfasst die Erstellung einer neuen Klasse, der sogenannten abgeleiteten Klasse, aus einer vorhandenen Klasse, der sogenannten Basisklasse. Die abgeleitete Klasse erbt die Eigenschaften und Methoden der Basisklasse. In JavaScript wird die Vererbung erreicht, indem der Prototyp der abgeleiteten Klasse auf eine Instanz der Basisklasse gesetzt wird. Dies kann jedoch Fragen zur Konstruktoreigenschaft und zum Instanzoperator aufwerfen.
Im bereitgestellten Code erstellen Sie Funktionen a , b und c, um die Vererbung zu demonstrieren. Wenn Sie jedoch den Konstruktor für Instanzen von b und c protokollieren, stellen Sie fest, dass es sich um den Konstruktor der Basisklasse (a()) handelt. Dies liegt daran, dass Sie die abgeleitete Klasse effektiv mit dem Prototyp der Basisklasse verknüpfen, wenn Sie den Prototyp einer abgeleiteten Klasse auf eine Instanz der Basisklasse festlegen. Infolgedessen verweist die Konstruktoreigenschaft der abgeleiteten Klasseninstanzen weiterhin auf den Basisklassenkonstruktor.
Der von Ihnen verwendete Vererbungsmechanismus ist nicht falsch. Die Vererbung wird durch die Verknüpfung der Prototypkette erreicht, und genau das tun Sie in Ihrem Code.
Um die Konstruktoreigenschaft in Ihrer JavaScript-Vererbungskette zu aktualisieren, Sie können diesen Schritten folgen:
Der „Instanceof“-Operator ist nicht auf die Konstruktoreigenschaft der Instanz angewiesen. Stattdessen durchläuft es die Prototypenkette der Instanz und prüft, ob ihre interne [[proto]]-Eigenschaft mit der Prototypeneigenschaft der Konstruktorfunktion übereinstimmt. Bei einer Übereinstimmung wird „true“ zurückgegeben, was darauf hinweist, dass die Instanz zu diesem Konstruktor gehört. Dadurch kann der Instanzoperator den Typ einer Instanz genau bestimmen, selbst wenn die Konstruktoreigenschaft falsch festgelegt ist.
Das obige ist der detaillierte Inhalt vonWie wirkt sich die JavaScript-Vererbung auf die Konstruktor-Eigenschaft und den „instanceof'-Operator aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!