Maison  >  Article  >  interface Web  >  Javascript peut-il définir des méthodes d'instance ?

Javascript peut-il définir des méthodes d'instance ?

青灯夜游
青灯夜游original
2021-11-22 14:03:181784parcourir

Javascript peut définir des méthodes d'instance.Méthodes : 1. Utilisez le prototype de référence de prototype d'objet JavaScript pour implémenter les méthodes d'instance ; 2. Définissez les méthodes directement sur les instances d'objet ; 3. Définissez les méthodes d'instance via ce pointeur.

Javascript peut-il définir des méthodes d'instance ?

L'environnement d'exploitation de ce tutoriel : système Windows 7, JavaScript version 1.8.5, ordinateur Dell G3.

1. Utilisez le prototype de référence de prototype d'objet JavaScript pour implémenter les méthodes d'instance

var BaseClass = function() {};  
BaseClass.prototype.method1 = function(){  
      alert(' This is a instance method ');  
}  
var instance1 = new BaseClass();  
instance1.method1(); //This is a instance method

2 Définissez les méthodes (objets) directement sur l'instance

var BaseClass = function() {};  
var instance1 = new BaseClass();  
instance1.method1 = function(){  
    alert(' This is a instance method too ');  
}   
instance1.method1();//This is a instance method too

3. Définissez les méthodes d'instance (variables) via ce pointeur

var BaseClass = function() {  
 this.method1 = function(){  
   alert(' Defined by the "this" instance method');  
  }  
 };  
var instance1 = new BaseClass();  
instance1.method1();//Defined by the "this" instance method
.

Donc après avoir défini la même méthode d'instance sur l'instance, la référence du prototype et "this" en même temps, laquelle sera appelée en premier par l'instance ?

var BaseClass = function() {  
this.method1 = function(){  
       alert(' Defined by the "this" in the instance method');  
 }  
};  
var instance1 = new BaseClass();  
instance1.method1 = function(){  
    alert(' Defined directly in the instance method');  
}  
BaseClass.prototype.method1 = function(){  
    alert(' Defined by the prototype instance method ');  
}  
instance1.method1();//Defined directly in the instance method

* En lançant le test de suivi des résultats, nous pouvons constater que la priorité des variables directement touchées sur l'instance est supérieure à celle définie sur "this"

* * Et la priorité définie sur "this" ; est supérieur aux variables définies par le prototype ;

* Autrement dit, les variables définies directement sur l'instance écraseront les variables définies sur "ceci" et le prototype, et les variables définies sur "ceci" écraseront les variables définies par le type de prototype.

【Apprentissage recommandé : Tutoriel avancé javascript

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
Article précédent:Ce que nodejs peut faireArticle suivant:Ce que nodejs peut faire