Heim >Web-Frontend >js-Tutorial >Einführung in den Prototypenkettenprototyp in JavaScript_Javascript-Fähigkeiten
Die Vererbung in JavaScript erfolgt über die Prototypenkette: Jedes Objekt enthält ein anderes Objekt als Prototyp, und das Objekt erbt Eigenschaften von diesem Prototyp. Für jedes Objekt können Sie auf die folgenden drei Arten auf sein Prototypobjekt zugreifen:
1.__proto__. Auf das Prototypobjekt eines Objekts kann über sein __proto__-Attribut zugegriffen werden. Diese Eigenschaft wird nur in Firefox, Safari und Chrome unterstützt, nicht in IE und Opera.
2.Object.getPrototypeOf(). Sie können das Objekt als Parameter an die Methode Object.getPrototypeOf() übergeben, und das Prototypobjekt des Objekts wird nach der Ausführung zurückgegeben. Diese Methode wird nur im ECMAScript 5-Standard unterstützt.
3.o.constructor.prototype. Greifen Sie auf das Prototypobjekt zu, indem Sie zuerst die Konstruktorfunktion des Objekts abrufen und dann auf die Prototypeigenschaft der Konstruktorfunktion zugreifen. Voraussetzung für die Verwendung dieser Methode ist, dass im Objekt ein Konstruktorattribut vorhanden ist, das auf den Konstruktor verweist.
Um festzustellen, ob zwischen zwei Objekten eine Prototyp-Kettenbeziehung besteht, können Sie die Methode isPrototype() verwenden:
Für alle mit Literalen erstellten Objekte sind ihre Prototypobjekte Object.prototype (als spezielles Objekt hat Object.prototype kein Prototypobjekt):
Für alle mit dem neuen Operator erstellten Objekte sind ihre Prototypobjekte die Prototypattribute der Konstruktorfunktion:
Der Prozess zur Verwendung des neuen Operators zum Erstellen von Objekten in JavaScript ist wie folgt:
1. Erstellen Sie ein neues leeres Objekt.
2. Verweisen Sie das __proto__-Attribut dieses Objekts auf das Prototyp-Attribut der Konstruktorfunktion.
3. Verwenden Sie dieses Objekt als Parameter, um die Konstruktorfunktion auszuführen.
Aus dem obigen Erstellungsprozess kann geschlossen werden, dass alle Objekte, die mit derselben Konstruktorfunktion erstellt wurden, ihre __proto__-Attribute (d. h. ihre Prototypobjekte) gleich haben, d. h. es gibt nur ein Prototypobjekt: