gpt4 book ai didi

javascript - for循环,保持变量

转载 作者:行者123 更新时间:2023-11-30 09:40:38 24 4
gpt4 key购买 nike

假设我有当前代码:

for(var n = 0; n != 5;n++){
alert(i);
}

它会提醒 0,1,2,3,4

虽然现在假设我需要执行一个异步函数,它有一个可以作为参数传递的返回函数。

for(var n = 0; n != 5;n++){
doAsync(function(){alert(n);});
}

function doAsync(func){
setTimeout(func, 1000);
}

这将提醒“5”,5 次。有没有办法让 n 变量与循环中的变量保持不变?我的意思是我希望它执行 0,1,2,3,4。

谢谢,我感谢所有帮助。

最佳答案

这是一个典型的闭包问题。

您可以按以下方式更改您的代码

for (var n = 0; n != 5; n++) {
alert(n);
}


for (var n = 0; n != 5; n++) {
doAsync(function(n) {
alert(n);
}.bind(null,n));
}

function doAsync(func) {
setTimeout(func, 1000);
}

希望对你有帮助

关于javascript - for循环,保持变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41317410/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com