Les méthodes qui n'utilisent pas de prototype sont équivalentes aux méthodes statiques de la classe. Au contraire, les méthodes qui utilisent un prototype sont équivalentes aux méthodes d'instance de la classe. Elles ne peuvent pas être utilisées tant que new n'est pas autorisé.
Quelle est la différence entre les deux méthodes ? Qu'est-ce que ça fait d'utiliser un prototype ou non ?function ListCommon2(first,second,third) { this.First=function () { alert("first do"+first); } } ListCommon2.do1=function(first) { // this.First(); alert("first do"+first); } ListCommon2.prototype.do2=function(first) { // this.First(); alert("first do"+first); }
Code de test :
var t1=new ListCommon2("烧水1","泡茶1","喝1"); // t1.do1();//调用出错 ListCommon2.do1("烧水1"); var t2=new ListCommon2("烧水2","泡茶2","喝2"); t2.do2("烧水2");// // ListCommon2.do2("烧水1");//调用出错
Au contraire, la méthode utilisant le prototype est équivalente à la méthode d'instance de la classe, qui ne peut être utilisée qu'après que new n'est pas autorisé, ListCommon2.do2("Boil water 1 "); Cela provoquera une erreur
Conclusion, la méthode définie à l'aide du prototype est équivalente à la méthode d'instance de la classe. Elle doit être nouvelle avant de pouvoir être utilisée. Les restrictions sur les fonctions qui peuvent être appelées dans la fonction sont également similaires aux restrictions sur les méthodes d'instance de la classe
Utilisation des méthodes qui le font. ne pas utiliser de définitions de prototypes est équivalent aux méthodes statiques de la classe. Elles peuvent être utilisées directement sans nouveauté. Les restrictions sur les fonctions pouvant être appelées dans la fonction sont également similaires aux restrictions sur les méthodes statiques de la classe
<.>Par exemple, this.First();
ne peut pas être appelé
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!