Jedes Objekt in JavaScript hat einen Prototyp. Versuchen Sie es:
Die Codekopie lautet wie folgt:
var Richard = new Object ();
alert (typeof (Richard.Prototyp));
Das Ergebnis ist deprimierend und was mit dem Browser auftaucht, ist undefiniert ...
Was ist los?
Schauen wir uns ein anderes Beispiel an:
Die Codekopie lautet wie folgt:
Funktion Richard () {}
alert (typeof (Richard.Prototyp));
Das obige Beispiel scheint zu zeigen, dass nur Funktionsobjekte Prototypen haben, während allgemeine Objektobjekte keine Prototypen haben. Was ist die Wahrheit?
Lassen Sie uns einen anderen Satz umsetzen und verstehen:
Die Codekopie lautet wie folgt:
var Richard = new Object ();
Alarm (Richard .__ Proto__);
Verstehst du?
Tatsächlich haben wir alle ein Missverständnis, nämlich dass die Prototyp -Kette von JavaScript -Objekten eine Eigenschaft namens Prototyp ist und zugegriffen werden kann. Tatsächlich haben der Prototyp von JavaScript und das Attribut namens Prototype zu Beginn überhaupt keine Beziehung und sind zwei verschiedene Dinge.
Für allgemeine Objekte können wir nur auf den vom Objektobjekt geerbten Prototyp zugreifen, der über Attribute wie __Proto__ geerbt wurde.
Bei einem Funktionsobjekt wurde der Prototyp des Funktionsobjekts der Prototyp -Eigenschaft zugewiesen.