JS传递数组作为递归函数的参数

时间:2014-05-09 16:32:02

标签: javascript jquery recursion arguments apply

好吧,再说一次。 我想在递归函数中调用一个函数,其中包含所有参数:

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);

1 个答案:

答案 0 :(得分:2)

参数数组应该是apply第二个参数。

您需要添加一个参数来确定this之前的值。

setTimeout.apply(window, args);