Javascript – Passing all parameters of one function to another? (javascript)

javascript

How do you pass all the parameters of one function into another

function a(){
    arguments.length;// this is 1
    // how do I pass any parameter function a receives into another function
    b(what to put here?); // say pass all parameters function a receives to function b
}
a('asdf'); // this is okay

So if function a receives X number of parameters, each parameter is then passed into function b in the same order. So if a("1", "2"); , b("1", "2");, if a("1", 2, [3]); , b("1", 2, [3]);.

Best Solution

Use Function.prototype.apply(thisArg[, argsArray]), like so:

b.apply(this, arguments);

Now, arguments is an array-like object that has some other properties (like callee) apart from its n-index properties. So, you probably ought to use Array.prototype.slice() to turn the object into a simple array of arguments (though either will work in modern environments).

b.apply(this, Array.prototype.slice.call(arguments));

See also: Function.prototype.call()