Javascript 使用setTimeout()和.call()

Javascript 使用setTimeout()和.call(),javascript,settimeout,Javascript,Settimeout,我一直在尝试为使用.call()方法进行的函数调用设置setTimeout 基本上,我有一个函数引用数组,然后逐个遍历它们,并以特定的setTimeout间隔调用它们。第一个函数触发aok,但第二个没有,我在js控制台中遇到了一个我不理解的错误——错误是- 未捕获的TypeError:对象73没有方法“调用” 守则: function scene1(){ alert("boo"); } funct

我一直在尝试为使用.call()方法进行的函数调用设置setTimeout

基本上,我有一个函数引用数组,然后逐个遍历它们,并以特定的setTimeout间隔调用它们。第一个函数触发aok,但第二个没有,我在js控制台中遇到了一个我不理解的错误——错误是-

未捕获的TypeError:对象73没有方法“调用”

守则:

        function scene1(){             
            alert("boo");
        }

        function scene2(){          
            alert("boo2");
        }            

        var arrAnimation = [];
        arrAnimation[0] = scene1;                   
        arrAnimation[1] = scene2;                 

        //step through the array
        for (var i = 0; i < arrAnimation.length; i++){
                setTimeout(arrAnimation[i],3000).call();                  
        }  
函数scene1(){
警报(“boo”);
}
函数scene2(){
警报(“boo2”);
}            
var数组化=[];
数组化[0]=scene1;
排列[1]=场景2;
//单步遍历数组
对于(变量i=0;i
任何帮助都将不胜感激。
Dan

您不需要使用
调用
-您只需将函数传递到
设置超时
,它就会自动运行:

setTimeout(arrAnimation[i],3000);

仅供参考-
setTimeout
返回一个数字作为句柄,如果需要,可以稍后取消超时。号码没有呼叫功能。

您不需要使用呼叫功能-您只需将该功能传递到设置超时即可自动运行:

setTimeout(arrAnimation[i],3000);

仅供参考-
setTimeout
返回一个数字作为句柄,如果需要,可以稍后取消超时。号码没有呼叫功能。

您的
.call方法在错误的位置。给你:


您的
.call
方法位于错误的位置。给你:


谢谢丹尼斯-我不知道为什么我没有试一下。啊,我明白了,这是有道理的。非常感谢。谢谢丹尼斯-我不知道为什么我没有试一下。啊,我明白了,这是有道理的。非常感谢。