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属性和相应的整数索引,它就可以工作.