Comprendre les fermetures JavaScript dans les boucles
Le problème :
Dans le code fourni, l'utilisation des fermetures dans une boucle semble déroutant. Plus précisément, l'apparition de i entre doubles parenthèses a causé des difficultés de compréhension.
La solution : Function Factory
Pour résoudre ce problème, une technique appelée usine de fonctions peut être employé. Au lieu d'attribuer directement une fonction à un gestionnaire d'événements, nous pouvons utiliser une fabrique de fonctions pour générer la référence de fonction souhaitée.
Exemple de code :
function generateMyHandler(x) {
return function() {
alert(x);
};
}
for (var i = 0; i Explication :
Dans ce code, nous créons une fabrique de fonctions nommée generateMyHandler qui prend un paramètre x. Cette usine renvoie une fonction qui alerte sur la valeur de x. Dans la boucle, nous invoquons generateMyHandler pour chaque i et attribuons la fonction renvoyée au gestionnaire d'événements.
Comment cela résout le problème :
L'utilisation d'une fabrique de fonctions nous permet pour isoler la création de la fermeture. En passant i comme argument à la fonction factory, nous capturons une référence unique à i. Cela garantit que chaque fermeture conserve sa propre instance de la variable, éliminant ainsi le problème des variables partagées.
Conclusion :
En employant une fabrique de fonctions, nous pouvons utiliser efficacement fermetures en boucles sans rencontrer de conflits ou de confusion. Cette technique permet de simplifier le code et améliore notre compréhension du fonctionnement des fermetures dans la boucle d'événements JavaScript.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3