Maison  >  Article  >  interface Web  >  Comment résoudre le problème de fermeture de boucle for dans JS

Comment résoudre le problème de fermeture de boucle for dans JS

小云云
小云云original
2018-02-24 13:59:542713parcourir

Dans cet article, nous partagerons avec vous deux méthodes pour résoudre le problème de fermeture de boucle for dans JS. Nous espérons que cela pourra vous aider.


Avec un extrait de code comme celui-ci, les débutants tiendront pour acquis que cliquer sur Li dans l'ordre fera apparaître le 0, 1, 2, 3, 4 correspondant , 5, mais Le résultat réel est comme ceci


Peu importe sur quel bouton nous cliquons, la dernière chose qui apparaît est 6. C’est le problème classique de fermeture de boucle.

Alors, comprenons d'abord ce qu'est une fermeture. L'Encyclopédie Baidu l'explique ainsi : Une fermeture est un bloc de code qui peut contenir des variables libres (non liées à un objet spécifique) dans lesquelles ces variables ne sont pas ; ceux-ci sont définis dans un bloc de code ou dans n'importe quel contexte global, mais sont définis dans l'environnement dans lequel le bloc de code est défini (variables locales). Le mot « fermeture » vient de la combinaison d'un bloc de code à exécuter (car les variables libres sont contenues à l'intérieur du bloc, ces variables libres et les objets auxquels elles font référence ne sont pas libérées) et de la liaison prévue pour les variables libres. Environnement informatique (portée). La prise en charge des fermetures à des degrés divers peut être trouvée dans des langages tels que Scala, Scheme, Common Lisp, Smalltalk, Groovy, JavaScript, Ruby, Python, Lua, Objective C et Java (Java8 et supérieur).

Ma compréhension simple est la suivante : une fonction est imbriquée dans une autre fonction, et une fonction à l'intérieur doit accéder aux variables de la fonction externe, donc une fermeture est formée pour conserver une certaine fonction. les valeurs de certaines variables locales.

Cependant, il existe des problèmes de fermeture courants en JavaScript, comme l'exemple ci-dessus, voyons donc comment résoudre ces problèmes.

Solution 1 : Ajouter une couche de fermeture, i est passé à la fonction interne sous la forme d'un paramètre de fonction :

Le résultat est qu'en cliquant le li correspondant apparaîtra Le numéro correspondant, par exemple, cliquez sur le troisième li, l'effet suivant apparaîtra :

Solution 2 : Trouver un attribut pour enregistrer le i valeur, puis affichez la valeur

Cliquez sur le troisième li, et l'effet suivant apparaîtra :

Recommandations associées :

Explication détaillée de JavaScript pour la boucle si une déclaration de jugement

L'utilisation de la boucle for-in et de la boucle for pour parcourir des tableaux

boucle for en JavaScript Précautions lors de l'utilisation de

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