尝试将setTimeout设置为使用.call()方法进行的函数调用时,我有点困惑。
基本上,我有一个函数引用数组,然后逐个逐步执行它们并以特定的setTimeout间隔调用它们。第一个函数触发aok,但第二个函数没有,我在js控制台中遇到一个我不明白的错误 - 错误是 -
未捕获的TypeError:对象73没有方法'call'
代码:
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();
}
任何帮助都会非常感激。 丹
答案 0 :(得分:3)
您不需要使用call
- 您只需将该功能传递给setTimeout
,它就会自动运行:
setTimeout(arrAnimation[i],3000);
关于错误本身的FYI - setTimeout
会返回一个数字作为句柄,如果您需要,可以在以后取消超时。数字没有call
函数。
答案 1 :(得分:1)
您在错误的位置使用.call
方法。你走了: