循环使用setTimeout里面的列表返回undefined

时间:2018-04-06 13:29:54

标签: javascript

我在' for循环'中实现了setTimeout函数,它似乎没有按预期工作。

这是我使用的代码:

var listItems = ['1','2','3'];

for(var i = 0 ; i < listItems.length ; i++){
    setTimeout(function(){
      console.log(listItems[i])
    },500)
}

经过测试,返回&#39;未定义(3)&#39;

困惑,尝试了另一种解决方案

var listItems = ['1','2','3'];
for(var i = 0 ; i < listItems.length ; i++){
    setTimeout(function(i){
      console.log(listItems[i])
    },500)
}

显然这甚至没有效果。

在这里查看另一个类似的问题,并尝试:

var listItems = ['1','2','3'];
for(var i = 0 ; i < listItems.length ; i++){

    (function(){
      setTimeout(function(){
        console.log(listItems[i])
      },500)
    })(i);

}

仍然未定义(3)&#39;

这是没有setTimeout函数的工作代码。我不确定我做错了什么。

谢谢!

0 个答案:

没有答案