Kopieren Sie den Code -Code wie folgt:
<MCE: Skript type = "text/javaScript"> <!--
/*
Jede Objektinstanz hat einen Prototyp (Prototyp), mit dem Attributelemente auf sein Instanzobjekt hinweisen (vorübergehend als übergeordnetes Objekt bezeichnet).
Wir verweisen auf die Beziehung zwischen dem Prototyp des Vaters als [Prototyp -Kettenprototyp Chian]
Der Prototyp hat auch einen Vater, weil es sich oft um eine Objektinstanz handelt, es sei denn, wir persönlich ändern ihn
In JavaScript: "Alles ist ein Objekt, die Funktion ist der erste Typ."
Funktion und Objekte sind Instanzen von Funktionen.
Der Vaterprototyp der Funktion zeigt auf den Funktionsprototyp, Funktion.Prototypen Vaterprototyp ist Objekt
Der übergeordnete Prototyp des Objekts zeigt auch auf den Prototyp der Funktion.
In der Spiderermonkey -Engine kann der übergeordnete Prototyp über __Proto__ zugegriffen werden
*/
Function.prototype.hi = function () {alert ('hi function');};
Object.Prototype.hi = function () {alert ('Hi -Objekt');}
var a = function () {
this.txt = "a";
}
A.Prototype = {
Sag: function () {alert ('a');}
}
Alarm (eine Instanzfunktion); // a ist eine Instanz der Funktion;
Alert (a .__ loto___ === Funktion.Prototyp);
ALERT (Funktionsinstanz); // Funktion ist eine Instanz des Objekts;
ALERT (Funktion .__ Loto__ === FU -Zugriff.Prototyp);
Alert (function.prototype .__ loto__ === Objekt.Prototyp);
Alert (Object .__ Proto__ === Funktion.Prototyp);
ALERT (Object.Prototype .__ Loto __);
ALERT (A.Prototypeninstanz des Objekts);
ALERT (A.Prototype .__ Loto__ === Objekt.Prototyp);
var a = function () {};
A.Prototype = new a ();
A.Prototype.say = function () {
alarm ('a');
}
Warnung (eine Instanzfunktion);
Alert (a .__ propo___ === Funktion.Prototyp);
ALERT (A.Prototypeninstanz a);
ALERT (A.Prototype .__ Loto__ === A.Prototyp);
var ia = new a ();
var ib = new a ();
Ia.hi ();
/*
IA selbst hat keine HI -Methode (nein in der Struktur, und ich habe sie nicht definiert).
Suchen Sie also nach IA .__ Proto__, das heißt, A.Prototyp, und fand es nicht.
Suchen Sie also nach A.Prototype .__ Loto__, das heißt, A.Prototyp, und ich habe es immer noch nicht gefunden.
Finden Sie weiter
Ausgabe: Hallo Objekt
*/
Ib.hi ();
/*
IB selbst hat keine HI -Methode (nein in der Struktur, und ich habe sie nicht definiert),
Also finde ib .__ loto__, das heißt, A.Prototype, fand es aber immer noch nicht.
Finden Sie weiter
Ausgabe: Hallo Objekt
*/
a.hi ();
/*
A selbst hat keine HI -Methode (es gibt keine in der Struktur, und ich habe sie nicht definiert).
Also finde eine .__ propo___ beide Funktionen.
Ausgabe: Hallo Funktion
*/
ia.say ();
/*
IA selbst hat kein Sprichwort (nein in der Struktur, und ich habe es nicht definiert).
Also finde ia .__ proto__, das ist A.Prototype, wow, ich habe gesagt, also habe ich es angerufen und hör auf, danach zu suchen
Also, hier ist A.Prototype.say
Ausgabe: a
*/
Ib.say ();
/*
IB selbst hat kein Mitspracherecht (nein in der Struktur, und ich habe es nicht definiert).
Also finde ib .__ loto__, das ist A.Prototype, wow, ich habe gesagt, also habe ich es angerufen und hör auf, danach zu suchen
Also, hier ist A.Prototype.say
Ausgabe: a
*/
ia.bad ();
/*
IA selbst hat keine schlechte Methode (es gibt keine in der Struktur, und ich habe sie nicht definiert).
Suchen Sie also nach IA .__ Proto__, das heißt, A.Prototyp, und fand es nicht.
Suchen Sie also nach A.Prototype .__ Loto__, das heißt, A.Prototyp, und ich habe es immer noch nicht gefunden.
Finden Sie weiterhin A.Prototype .__ Loto__, das ist Object.Prototyp.
Rückgabefehler, ia.bad ist keine Funktion
*/
// -> </mce: script>
</script>
Vielen Dank an Simons Korrekturmeinung! Alle Instanzen finden bei der Suche nach der Attributmethode keinen eigenen Prototyp (der Prototyp der Instanz befindet sich nicht in der Prototypkette, sondern kann nur als Attribut verwendet werden)!