Heim >Web-Frontend >js-Tutorial >Prototyp vs. „__proto__': Was ist der wahre Unterschied?

Prototyp vs. „__proto__': Was ist der wahre Unterschied?

Barbara Streisand
Barbara StreisandOriginal
2024-12-14 15:19:14615Durchsuche

Prototype vs. `__proto__`: What's the Real Difference?

Prototyp und __proto__: Den Unterschied verstehen

Im Bereich der objektorientierten Programmierung ist das Verständnis der Konzepte von Prototyp und .__proto__ von entscheidender Bedeutung . Obwohl diese Begriffe synonym erscheinen mögen, dienen sie unterschiedlichen Zwecken.

Proto bezieht sich auf die interne Referenz auf den Prototyp eines Objekts, also das Objekt, das das Vererbungsverhalten für das gegebene Objekt bereitstellt. Es ist das eigentliche Objekt, das während der Suchkette zum Auflösen von Methoden und Eigenschaften verwendet wird.

Andererseits ist Prototyp eine explizite Eigenschaft der Konstruktorfunktion, die auf das Prototypobjekt verweist. Wenn ein neues Objekt mithilfe der Konstruktorfunktion erstellt wird, wird die Eigenschaft __proto__ des neuen Objekts auf den Wert des Prototyps des Konstruktors gesetzt.

Um diese Unterscheidung zu veranschaulichen:

var b = new Foo(20);
var c = new Foo(30);

(new Foo).__proto__ === Foo.prototype // true
(new Foo).prototype === undefined // true

Hier Beispielsweise ist Foo.prototype das Prototypobjekt für b und c. Die __proto__-Eigenschaft von b und c verweist auf dieses Prototypobjekt und ermöglicht ihnen, Eigenschaften und Methoden davon zu erben.

Es ist erwähnenswert, dass es sich bei „prototyp“ um eine Eigenschaft mit Lese-/Schreibzugriff handelt, während „__proto__“ im Allgemeinen als schreibgeschützt gilt. Das direkte Ändern der Eigenschaft __proto__ kann zu unerwartetem Verhalten führen.

Das obige ist der detaillierte Inhalt vonPrototyp vs. „__proto__': Was ist der wahre Unterschied?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn