apply()
and call()
are common methods to invoke a function.
Difference
Following is the syntax of these methods, where fn
represents a given function:
fn.apply(context, arrayOfArguments);
fn.call(context, arg1, arg2, ...);
As you see, apply
requires the arguments as an array, whereas call
requires the arguments to be listed explicitly.
For example, the following function returns the sum of three numbers.
const sum = (a, b, c) => a + b + c;
sum.apply(null, [1, 2, 3]);
sum.call(null, 1, 2, 3);
Tip
You can use this mnemonic to remember the differences between apply
and call
:
A is for array
C is for comma