I need to pass arguments onto a callback function as real arguments. How do I do that? callback requires a variable number of arguments.
Example function like this:
var func = function (cal开发者_运维百科lback) {
doSomething(function () {
// the goal is to pass on the arguments object to the callback function as real arguments
callback(arguments)
});
}
Thanks in advance.
It might be a similar question to this: Is it possible to send a variable number of arguments to a JavaScript function?
But I didn't understand that question nor the answers.
Edit: If possible, I would like to not pollute global.
Use apply to invoke the callback so the array items gets passed as individual arguments to the function.
callback.apply(this, arguments);
apply
takes the context, and an array as an argument, and each item of the array can be passed as a named argument of the function being invoked.
function two(first, second) {
alert(first), alert(second);
}
two.apply(null, ["Hello", "World"]); // alerts "Hello", then "World"
Implementations of ES3 required that the second argument to apply
be either an array, or an arguments object. ES5 makes it more liberal in that as long as it resembles an array - has a length
property, and corresponding integer indexes, it will work.
精彩评论