Heim > Web-Frontend > js-Tutorial > Was ist der Unterschied zwischen JavaScripts „.prototype' und „.__proto__'?

Was ist der Unterschied zwischen JavaScripts „.prototype' und „.__proto__'?

Mary-Kate Olsen
Freigeben: 2024-12-18 04:54:10
Original
297 Leute haben es durchsucht

What's the Difference Between JavaScript's `.prototype` and `.__proto__`?

Den Unterschied zwischen .prototype und .__proto__ verstehen

Im Bereich von JavaScript interagieren Objekte durch Vererbung und Prototypketten miteinander. Zwei wichtige Konzepte, die bei diesem Vererbungsmechanismus eine zentrale Rolle spielen, sind .prototype und .__proto__. Obwohl sie ähnlich klingen, erfüllen diese Eigenschaften unterschiedliche Funktionen.

.prototype

.prototype ist eine Eigenschaft einer Konstruktorfunktion, die als Vorlage für die Erstellung neuer Objekte dient. Wenn Sie eine Konstruktorfunktion mit new instanziieren, verfügt das resultierende Objekt über eine .__proto__-Eigenschaft, die auf das .prototype-Objekt der Konstruktorfunktion verweist. Dieses .__proto__-Objekt enthält Eigenschaften und Methoden, die vom neu erstellten Objekt geerbt werden.

.__proto__

.__proto__ ist eine Eigenschaft eines Objekts, das auf das Prototypobjekt verweist aus dem das Objekt erstellt wurde. Dadurch kann das Objekt auf Eigenschaften und Methoden zugreifen, die im Prototyp definiert sind. .__proto__ spielt eine entscheidende Rolle in der Vererbungskette und ermöglicht es Objekten, Eigenschaften und Methoden von ihren übergeordneten Objekten zu erben.

Hauptunterschiede

Der Hauptunterschied zwischen .prototype und .__proto__ liegt in ihrem Rollen:

  • .prototype: Stellt die Vorlage bereit, die zum Erstellen neuer Objekte verwendet wird.
  • .__proto__: Verweist auf das Prototypobjekt, aus dem Das aktuelle Objekt wurde erstellt.

Zusätzlich ist .prototype eine Eigenschaft des Konstruktors Funktion, während .__proto__ eine Eigenschaft einzelner Objekte ist.

Praktisches Beispiel

Betrachten Sie den folgenden Code:

function Foo(value) { this.value = value; }
Foo.prototype.getValue = function() { return this.value; };
var b = new Foo(20);
var c = new Foo(30);
Nach dem Login kopieren

In diesem Beispiel .prototype ist mit der Foo-Konstruktorfunktion verknüpft. Es definiert eine getValue-Methode, die von mit new Foo erstellten Objekten geerbt werden kann. .__proto__ ist eine Eigenschaft von b und c und verweist auf das Foo.prototype-Objekt. Über diese .__proto__-Referenz können b und c auf die geerbte getValue-Methode zugreifen.

Fazit

.prototype und .__proto__ sind wesentliche Konzepte bei der JavaScript-Vererbung. Das Verständnis ihrer unterschiedlichen Funktionen und ihrer Interaktion untereinander ist für eine effektive objektorientierte Programmierung in JavaScript von entscheidender Bedeutung.

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen JavaScripts „.prototype' und „.__proto__'?. 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