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!