Maison >interface Web >js tutoriel >Explication détaillée du fonctionnement des fermetures Javascript

Explication détaillée du fonctionnement des fermetures Javascript

零到壹度
零到壹度original
2018-04-08 16:05:041276parcourir

La soi-disant fermeture est une expression (généralement une fonction) qui a de nombreuses variables et un environnement lié à ces variables, donc ces variables font également partie de l'expression.

Ma compréhension ici est la suivante : en fait, toutes les méthodes de fonction dans js peuvent en fait être considérées comme des fermetures. En termes simples, elles peuvent également être comprises comme des fonctions imbriquées. méthode :

Par exemple, l'exemple de code suivant :

function run(){
   var a=10;
    return function(){
	a++;
	console.log(a);
    }
}
var foo=run();
foo();//11
foo();//12 
foo();//13

Analyse : La valeur de foo à ce moment est égal à La valeur de retour de la fonction run(), la fonction foo est une fermeture ;

1) Le processus d'exécution consiste à appeler d'abord la méthode foo() La méthode foo() trouvera la fonction de retour. dans la méthode run(). , cette méthode de fonction de retour pointera vers la variable a dans la méthode run(), puis lorsque foo() sera exécutée, 11 sera affiché

2 ; ) Dans l'exemple ci-dessus, en raison de l'existence de la fermeture, cela fait que a dans run() existe toujours après le retour de la fonction run, de sorte qu'à chaque fois que foo() est exécuté, a sera la valeur de a qui est ajoutée au console après avoir ajouté 1.

Recommandations associées :

Qu'est-ce qu'une fermeture exactement

L'explication la plus détaillée des fermetures

Compréhension approfondie des fermetures js

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