该代码如何工作?有人可以帮助我理解吗?

var myArray = ['one','two','three'];

var logAll = function (){
    var long = myArray.length;
    for(i=0;i< long;i++){
        console.log(myArray[i]);
    }
    setTimeout(logAll,50);
}
logAll();


据我说,myArray的长度仅为3,因此,我的日志必须将结果设为0,1,2。没关系。在我的for循环外,我为logAll函数引入了setTimeout,但是该logAll函数如何继续调用for循环,而不是3次。有人帮助我理解这一点吗?

如果是这样,为什么只调用一次?

var myArray = ['one','two','three'];

    var logAll = function (){
        var long = myArray.length;
        for(i=0;i< long;i++){
            console.log(myArray[i]);
        }

    }
    setTimeout(logAll,50);

最佳答案

您一直在setTimeout末尾调用logAll,因此它每50ms不断调用一次logAll

关于javascript - 我要如何长时间保持setTimeout?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8226833/

10-09 19:57