gpt4 book ai didi

javascript - 循环 JS 变量在函数内不显示正确的值

转载 作者:行者123 更新时间:2023-12-01 02:11:21 25 4
gpt4 key购买 nike

我需要执行以下任务。但这总是只提醒“5”而不是 1、2、3、4 和 5。我该如何解决这个问题?请帮忙。

    for(var x=1; x<=5; x++){
something.load(function(result){
alert(x);
});
}

最佳答案

这是由于关闭。当回调运行时,它将警告处于当前状态的变量(因此在循环之后)。

要解决此问题,您可以创建一个新的闭包来保持变量状态。

for(var x=1; x<=5; x++){
(function(x) {
something.load(function(result){
alert(x);
});
}(x));
}

对于闭包更完整的解释,可以引用这个SO问题:How do JavaScript closures work?

或者 TC39(EcmaScript 标准体)成员的这篇文章 http://www.2ality.com/2013/05/quirk-closures.html

关于javascript - 循环 JS 变量在函数内不显示正确的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19302539/

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