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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Libérer: 2016-05-16 16:36:28
original
1342 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:
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
Derniers numéros
php double for boucle traverse 1 à 100
Depuis 1970-01-01 08:00:00
0
0
0
javascript - boucle for et fermeture
Depuis 1970-01-01 08:00:00
0
0
0
javascript - boucle for, j'ai un problème
Depuis 1970-01-01 08:00:00
0
0
0
php - À quoi peut servir une boucle for?
Depuis 1970-01-01 08:00:00
0
0
0
v-for n'a pas d'option pour l'installer
Depuis 1970-01-01 08:00:00
0
0
0
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal