Maison  >  Article  >  interface Web  >  Explication détaillée des exemples de code de la différence entre javascript utilisant et non utilisant le prototype

Explication détaillée des exemples de code de la différence entre javascript utilisant et non utilisant le prototype

伊谢尔伦
伊谢尔伦original
2017-07-27 13:34:191289parcourir

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");//调用出错
Après les tests, il a été constaté que la méthode sans utiliser de prototype est équivalente à la méthode statique de la classe, elle peut donc être appelée comme ceci , ListCommon2.do1("Boil water 1 ");, si appelé de cette manière, une erreur se produira, t1.do1();


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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn