Maison > interface Web > js tutoriel > Introduction détaillée aux appels de méthode en JavaScript

Introduction détaillée aux appels de méthode en JavaScript

PHPz
Libérer: 2018-09-29 17:56:42
original
1198 Les gens l'ont consulté

Cet article présente principalement l'introduction détaillée de l'appel de méthode en JavaScript. En JavaScript, si une fonction appartient à un objet, l'acte d'accéder à la fonction via l'objet est appelé « appel de méthode ». Les amis dans le besoin peuvent s'y référer. .

En JavaScript, si une fonction appartient à un objet, l'acte d'accéder à la fonction via l'objet est appelé « appel de méthode ». Contrairement aux appels de fonction ordinaires, lors d'un appel de méthode, la référence this dans la fonction changera - cela fera référence à l'objet utilisé pour appeler la fonction (l'objet deviendra le contexte d'invocation de l'appel de méthode) :

var x = 99;
var sample = {
  x:1,
  act:function(a){
    this.x = a*a;//assign value to sample's x, not global object's x.
  }
}
sample.act(6);
console.log(sample.x);//36
console.log(x);//9
Copier après la connexion

De la même manière que pour accéder aux propriétés des objets, en plus d'utiliser l'opérateur point, JavaScript peut également utiliser l'opérateur crochet pour effectuer des appels de méthode :

//other ways to invoke method
sample["act"](7);
console.log(sample.x);//4
Copier après la connexion

Pour les fonctions en JavaScript, un comportement plus intéressant est que les fonctions (fermetures) peuvent être intégrées dans des fonctions. Lors d'un appel de méthode, s'il y a une fonction intégrée dans la fonction méthode, alors le code dans la fonction intégrée peut accéder à la valeur de la variable externe :

//nested function can access variable outside of it.
var y = 88;
var sample2 = {
  y:1,
  act2:function(a){
    this.y = inner();
    function inner(){
      return a*a;
    }
  }
}
sample2.act2(8);
console.log(sample2.y);//64
console.log(y);//88
Copier après la connexion

Cependant, contrairement à l'intuition, la fonction intégrée La le code in ne peut pas en hériter de l'extérieur ; c'est-à-dire que dans la fonction embarquée, cela ne fait pas référence à l'objet qui appelle la méthode, mais à l'objet global :

//nested function does not inherit "this". The "this" in nested function is global object
var sample3 = {
  act3:function(){
    inner();
    function inner(){
      console.log(this);//window object
    }
  }
}
sample3.act3();
Copier après la connexion

Si vous en avez vraiment besoin intégrer la fonction Pour accéder à l'objet appelant la méthode, vous pouvez enregistrer cette valeur dans une variable dans la fonction externe :

//pass "this" to nested function
var sample4 = {
  act4:function(){
    var self = this;
    inner();
    function inner(){
        console.log(self);//Object {act4=function()}
    }
  }
}
sample4.act4();
Copier après la connexion

Ce qui précède est l'intégralité du contenu de ce chapitre. Pour plus de didacticiels connexes, veuillez visiter. Tutoriel vidéo JavaScript !

É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
Derniers numéros
Qu’est-ce que le garbage collection JavaScript ?
Depuis 1970-01-01 08:00:00
0
0
0
Que sont les fonctions de hook JavaScript ?
Depuis 1970-01-01 08:00:00
0
0
0
Comment obtenir la date actuelle en JavaScript ?
Depuis 1970-01-01 08:00:00
0
0
0
c++ appelle javascript
Depuis 1970-01-01 08:00:00
0
0
0
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal