javascript发送参数对象作为参数

时间:2011-03-28 09:12:10

标签: javascript callback arguments

我需要将参数作为真实参数传递给回调函数。我怎么做?回调需要可变数量的参数。

示例函数如下:

var func = function (callback) {
  doSomething(function () {
    // the goal is to pass on the arguments object to the callback function as real arguments
    callback(arguments)
  });
}

提前致谢。

这可能是一个类似的问题: Is it possible to send a variable number of arguments to a JavaScript function?

但我不明白这个问题,也没有答案。

编辑:如果可能的话,我不想污染全球。

1 个答案:

答案 0 :(得分:18)

使用apply来调用回调,以便将数组项作为函数的单独参数传递。

callback.apply(this, arguments);

apply获取上下文,数组作为参数,数组的每个项都可以作为被调用函数的命名参数传递。

function two(first, second) {
    alert(first), alert(second);
}

two.apply(null, ["Hello", "World"]); // alerts "Hello", then "World"

ES3的实现要求apply的第二个参数是数组或参数对象。 ES5使它更自由,只要它类似于数组 - 具有length属性和相应的整数索引,它就可以工作。