gotchajavascriptCritical
What is the difference between call and apply?
Viewed 0 times
andbetweenthedifferencecallwhatapply
Problem
What is the difference between using
Are there performance differences between the two aforementioned methods? When is it best to use
Function.prototype.apply() and Function.prototype.call() to invoke a function?const func = function() {
alert("Hello world!");
};
func.apply() vs. func.call()Are there performance differences between the two aforementioned methods? When is it best to use
call over apply and vice versa?Solution
The difference is that
See MDN's documentation on apply and call.
Pseudo syntax:
There is also, as of ES6, the possibility to
Sample code:
apply lets you invoke the function with arguments as an array; call requires the parameters be listed explicitly. A useful mnemonic is "A for array and C for comma."See MDN's documentation on apply and call.
Pseudo syntax:
theFunction.apply(valueForThis, arrayOfArgs)theFunction.call(valueForThis, arg1, arg2, ...)There is also, as of ES6, the possibility to
spread the array for use with the call function, you can see the compatibilities here.Sample code:
function theFunction(name, profession) {
console.log("My name is " + name + " and I am a " + profession +".");
}
theFunction("John", "fireman");
theFunction.apply(undefined, ["Susan", "school teacher"]);
theFunction.call(undefined, "Claude", "mathematician");
theFunction.call(undefined, ...["Matthew", "physicist"]); // used with the spread operatorContext
Stack Overflow Q#1986896, score: 4047
Revisions (0)
No revisions yet.