Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.
Die isPrototypeOf() Methode von Object Instanzen prüft, ob dieses Objekt in der Prototypenkette eines anderen Objekts existiert.
Hinweis: isPrototypeOf() unterscheidet sich vom instanceof Operator. Im Ausdruck object instanceof AFunction wird die Prototypenkette von object gegen AFunction.prototype geprüft, nicht gegen AFunction selbst.
Das Objekt, dessen Prototypenkette durchsucht wird.
Ein Boolean, der angibt, ob das aufrufende Objekt (this) in der Prototypenkette von object liegt. Gibt direkt false zurück, wenn object kein Objekt ist (d.h. ein primitiver Wert).
Wird ausgelöst, wenn this null oder undefined ist (weil es nicht in ein Objekt konvertiert werden kann).
Alle Objekte, die von Object.prototype erben (das heißt alle außer null-Prototyp Objekten), erben die isPrototypeOf() Methode. Diese Methode ermöglicht es Ihnen, zu überprüfen, ob das Objekt innerhalb der Prototypenkette eines anderen Objekts existiert. Wenn das als Parameter übergebene object kein Objekt ist (d.h. ein primitiver Wert), gibt die Methode direkt false zurück. Andernfalls wird der this-Wert in ein Objekt konvertiert, und die Prototypenkette von object wird nach dem this-Wert durchsucht, bis das Ende der Kette erreicht oder der this-Wert gefunden wird.
Dieses Beispiel zeigt, dass Baz.prototype, Bar.prototype, Foo.prototype und Object.prototype in der Prototypenkette für das Objekt baz existieren:
Die isPrototypeOf() Methode — zusammen mit dem instanceof Operator — ist besonders nützlich, wenn Sie Code haben, der nur mit Objekten funktioniert, die von einer bestimmten Prototypenkette abstammen; z. B. um sicherzustellen, dass bestimmte Methoden oder Eigenschaften auf diesem Objekt vorhanden sind.
Zum Beispiel, um Code auszuführen, der nur sicher ist, wenn ein baz Objekt Foo.prototype in seiner Prototypenkette hat, können Sie folgendes tun:
Allerdings impliziert die Existenz von Foo.prototype in baz's Prototypenkette nicht, dass baz mit Foo als Konstruktor erstellt wurde. Zum Beispiel könnte baz direkt mit Foo.prototype als sein Prototyp zugewiesen worden sein. In diesem Fall würde Ihr Code beim Lesen privater Felder von Foo von baz dennoch fehlschlagen:
Das Gleiche gilt für instanceof. Wenn Sie private Felder auf sichere Weise lesen müssen, bieten Sie stattdessen eine markengeprüfte Methode mit in an.
| ECMAScript® 2027 Language Specification # sec-object.prototype.isprototypeof |
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.
Der Bauplan für ein besseres Internet.
Besuche die gemeinnützige Muttergesellschaft der Mozilla Corporation, die Mozilla Foundation.
Teile dieses Inhalts sind ©1998–2026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfügbar unter einer Creative-Commons-Lizenz.