Maison > interface Web > js tutoriel > Utilisez des fonctions anonymes auto-exécutables pour résoudre le problème de l'utilisation des fermetures dans les compétences for loops_javascript

Utilisez des fonctions anonymes auto-exécutables pour résoudre le problème de l'utilisation des fermetures dans les compétences for loops_javascript

WBOY
Libérer: 2016-05-16 16:36:28
original
1308 Les gens l'ont consulté

Ce code génère 10 10 au lieu des 0 à 9 attendus, car la fermeture contient une référence à i, puis i est devenu 10 lorsque la fonction est exécutée

function f1(){
for(var i = 0; i < 10; i++) {
setTimeout(function() {
alert(i); 
}, 1000);
}
}
f1();
Copier après la connexion

Pour résoudre les problèmes ci-dessus, vous pouvez utiliser des fonctions anonymes auto-exécutables

function f2(){
for(var i = 0; i < 10; i++) {
(function(e) {
setTimeout(function() {
alert(e); 
}, 1000);
})(i);
}
}
f2();
Copier après la connexion

La fonction anonyme ici prend i comme paramètre, et le e ici aura une copie de i, et la référence est une référence à e, ce qui évite le problème ci-dessus

É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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal