Maison > interface Web > js tutoriel > La différence entre utiliser un prototype et ne pas utiliser de prototype lors de la définition de fonctions dans la classe js

La différence entre utiliser un prototype et ne pas utiliser de prototype lors de la définition de fonctions dans la classe js

PHP中文网
Libérer: 2017-03-29 15:30:34
original
1190 Les gens l'ont consulté

J'utilise js pour écrire des méthodes bien-pensantes pour objets Lorsque j'ai rencontré un problème, j'ai défini une méthode comme suit :

Le code est le suivant :

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); 
}
Copier après la connexion
Quelle est la différence entre les deux méthodes ? Qu'est-ce que ça fait d'utiliser un prototype ou non ?


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");//调用出错
Copier après la connexion

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, donc elle peut être appelée ainsi, ListCommon2. do1("Boiling water 1");, si elle est appelée ainsi, une erreur se produira,
Au contraire, la méthode utilisant prototype est équivalent à la méthode d'instance de la classe, qui ne peut pas être utilisée tant que new n'est pas autorisé, ListCommon2. do2("Boil water 1"); la méthode d'instance de la classe, qui doit être utilisée après new. Les fonctions peuvent être appelées dans
fonctions
Les restrictions seront également similaires aux restrictions sur les méthodes d'instance de la classe
Utilisation des méthodes. qui ne sont pas définis à l'aide du prototype est équivalent à la méthode statique de la classe. Elle peut être utilisée directement sans new, et les restrictions sur les fonctions qui peuvent être appelées dans la fonction seront également les restrictions sur les méthodes statiques des classes. à
Par exemple, this.First();
ne peut pas être appelé.

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal