Copier le code du code comme suit:
<MCE: Script type = "Text / JavaScript"> <! -
/ *
Chaque instance d'objet a un prototype (prototype) qui attribut les membres sont utilisés pour pointer son objet instance (temporairement appelé l'objet parent)
Nous soulignons la relation entre le prototype du père comme [prototype prototype de la chaîne Chian]
Le prototype a également un coup de père -in, car c'est souvent une instance d'objet, à moins que nous ne le changez personnellement
Dans JavaScript, "Tout est un objet, la fonction est le premier type."
La fonction et les objets sont des instances de fonctions.
Le prototype du père de la fonction pointe vers le prototype de fonction, fonction. Le prototype père du prototype est objet
Le prototype parent de l'objet pointe également le prototype de la fonction.
Dans le moteur SpiderMonkey, le prototype parent est accessible via __proto__
* /
Function.prototype.hi = function () {alert ('Hi function');}
Object.prototype.hi = function () {alert ('hi objet');}
var a = fonction () {
this.txt = "a";
}
a.prototype = {
dire: function () {alert ('a');}
}
Alerte (une fonction d'instance);
Alert (a .__ loto___ === function.prototype);
Alerte (fonction de fonction objet);
Alert (fonction .__ LOTO__ === FU CONCRITÉ.PROTOTYPE);
Alerte (function.prototype .__ LOTO__ === Object.prototype);
Alert (objet .__ proto__ === function.prototype);
Alerte (objet.prototype .__ LOTO __);
Alerte (a.prototype instance d'objet);
Alerte (a.prototype .__ LOTO__ === Object.prototype);
var a = function () {};
A.prototype = new a ();
A.prototype.say = fonction () {
alert ('a');
}
Alerte (une fonction d'instance);
Alerte (a .__ proper___ === function.prototype);
Alerte (a.prototype instance de a);
Alerte (a.prototype .__ LOTO__ === A.prototype);
var ia = new a ();
var ib = new a ();
Ia.hi ();
/ *
Ia elle-même n'a pas de méthode HI (non dans la structure, et je ne l'ai pas défini),
Recherchez donc IA .__ Proto__, c'est-à-dire A.Protype, et ne l'a pas trouvé.
Alors recherchez a.prototype .__ LOTO__, c'est-à-dire A.Prototype, et je ne l'ai toujours pas trouvé.
Continuez à trouver a.prototype .___ loto__, c'est-à-dire objet.prototype, wow, j'ai trouvé bon
Sortie: objet HI
* /
Ib.hi ();
/ *
Ib lui-même n'a pas de méthode HI (non dans la structure, et je ne l'ai pas défini),
Alors trouvez IB .__ LOTO__, c'est-à-dire a.prototype, mais je ne l'ai toujours pas trouvé.
Continuez à trouver a.prototype .___ loto__, c'est-à-dire objet.prototype, wow, j'ai trouvé bon
Sortie: objet HI
* /
a.hi ();
/ *
A lui-même n'a pas de méthode HI (il n'y a pas dans la structure, et je ne l'ai pas défini),
Alors trouvez un .__ Propo___ les deux fonctions.prototype, wow, j'ai trouvé salut, alors je l'ai appelé et arrête de chercher
Sortie: fonction HI
* /
ia.say ();
/ *
Ia elle-même n'a pas de dicton (non dans la structure, et je ne l'ai pas défini),
Alors trouvez ia .__ proto__, c'est-à-dire a.prototype, wow, j'ai trouvé, dis, alors je l'ai appelé et arrêter de chercher
Alors, voici a.prototype.say
Sortie: A
* /
Ib.say ();
/ *
Ib lui-même n'a pas son mot à dire (non dans la structure, et je ne l'ai pas défini),
Alors trouvez IB .__ LOTO__, c'est-à-dire a.prototype, wow, j'ai trouvé dis, alors je l'ai appelé et j'ai arrêté de chercher
Alors, voici a.prototype.say
Sortie: A
* /
ia.bad ();
/ *
Ia elle-même n'a pas de mauvaise méthode (il n'y a pas dans la structure, et je ne l'ai pas défini),
Recherchez donc IA .__ Proto__, c'est-à-dire A.Protype, et ne l'a pas trouvé.
Alors recherchez a.prototype .__ LOTO__, c'est-à-dire A.Prototype, et je ne l'ai toujours pas trouvé.
Continuez à trouver a.prototype .__ LOTO__, c'est-à-dire object.prototype.
Erreur de retour, ia.bad n'est pas une fonction
* /
// -> </ mce: script>
</cript>
Merci à l'opinion de la correction de Simon! Toutes les instances ne trouvent pas leur propre prototype lors de la recherche de la méthode d'attribut (le prototype de l'instance n'est pas dans la chaîne prototype, elle ne peut être utilisée que comme attribut)!