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 :
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, 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é.