0

我有点坚持尝试将 setTimeout 设置为使用 .call() 方法进行的函数调用。

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

未捕获的类型错误:对象 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();                  
        }  

任何帮助将非常感激。担

4

2 回答 2

3

您不需要使用call- 您需要做的就是将函数传递给setTimeout它,它将自动运行:

setTimeout(arrAnimation[i],3000);

关于错误本身的仅供参考 -setTimeout返回一个数字作为句柄,如果您需要,它可以让您稍后取消超时。数字没有call功能。

于 2012-04-29T14:11:39.867 回答
1

你有.call错误的地方的方法。干得好:

http://jsfiddle.net/JkLk2/

于 2012-04-29T14:13:55.490 回答