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

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

Barbara Streisand
Freigeben: 2024-12-14 15:19:14
Original
621 Leute haben es durchsucht

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
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage