javascript发送参数对象作为参数

Har*_*rry 9 javascript arguments callback

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

示例函数如下:

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

提前致谢.

它可能是一个类似的问题: 是否可以向JavaScript函数发送可变数量的参数?

但我不明白这个问题,也不理解答案.

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

Anu*_*rag 19

使用apply来调用回调,以便将数组项作为单个参数传递给函数.

callback.apply(this, arguments);
Run Code Online (Sandbox Code Playgroud)

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

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

two.apply(null, ["Hello", "World"]); // alerts "Hello", then "World"
Run Code Online (Sandbox Code Playgroud)

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