好吧,再说一次。 我想在递归函数中调用一个函数,其中包含所有参数:
function foo(callback /* , callback args */) {
var args;
for(var i=1;i<arguments.length;i++) {
args.push(arguments[i]);
}
// somehow set the timeout to foo
callback.apply(args);
}
我已经尝试过也适用于setTimeout但似乎无法正常工作:
args.unshift(foo, 100, callback);
setTimeout.apply(args);
答案 0 :(得分:2)
参数数组应该是apply
的第二个参数。
您需要添加一个参数来确定this
之前的值。
setTimeout.apply(window, args);