Difference between call apply and bind in javascript

Difference between call, apply and bind in javascript

Both call and apply perform the same functions only difference between call and apply is that call execute a function in the context, or scope of the first argument that we pass to it and their related arguments.

In call we pass all the arguments with the object as a first argument.

Example as for call with object and single argument

 var obj = { 
num : 10 
}; 

var addMore = function(a){ 
return this.num + a; 
}; 

console.log(addMore.call(obj,5)); // 15 

Call with object and multiple arguments

 var obj = { 
num : 10 
}; 

var addMore = function(a,b,c){ 
return this.num + a + b + c; 
} 

console.log(addMore.call(obj,5,10,15)); // 40 

In apply we pass first argument as a object context and second argument as an array of arguments

 var obj = { 
num : 10 
}; 

var addMore = function(a,b,c){ 
return this.num + a + b + c; 
} 

var arr = [5,10,15]; console.log(addMore.apply(obj,arr)); // 40 

In bind we pass object as an argument with the function and bind return us a function for later execute

 var obj = { 
num : 10 
}; 

var addMore = function(a,b,c){ 
return this.num + a + b + c; 
} 

var bound = addMore.bind(obj); 
console.log(bound(5,10,15)); // 40 

Call and apply are pretty interchangeable. Just decide whether it’s easier to send in an array or a comma separated list of arguments.

Bind is a bit different. It returns a new function. Call and Apply execute the current function immediately.

How To Open a Port on Linux

Opening a port on Linux involves configuring the firewall to allow traffic through the specified port. Here's a step-by-step guide to achieve this, assuming you are using ufw (Uncomplicated Firewall) or iptables for managing your firewall settings. u …

read more

Troubleshooting Latency Issues on App Platform

Troubleshooting latency issues on an app platform can be complex, involving multiple potential causes across the network, server, application code, and database. Here’s a structured approach to identifying and resolving latency issues. Identify …

read more