Function.prototype.apply
Calls a function with a given this value and arguments provided as an array.
syntax:
fun.apply(thisArg[, argsArray]).
thisArg
The value of this provided for the call to fun.
argsArray
An array like object
Example:
/* min/max number in an array */
var numbers = [5, 6, 2, 3, 7];
/* using Math.min/Math.max apply */
var max = Math.max.apply(null, numbers); /* This about equal to Math.max(numbers[0], ...) or Math.max(5, 6, ..) */
var min = Math.min.apply(null, numbers);
/* vs. simple loop based algorithm */
max = -Infinity, min = +Infinity;
for (var i = 0; i < numbers.length; i++) {
if (numbers[i] > max)
max = numbers[i];
if (numbers[i] < min)
min = numbers[i];
}
The main difference is that apply lets you invoke the function with arguments as an array; call requires the parameters be listed explicitly.
See here and here .
Pseudo syntax:
theFunction.apply(valueForThis, arrayOfArgs)
theFunction.call(valueForThis, arg1, arg2, ...)