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.

Explain the concept of Web Workers in HTML-5

Web Workers in HTML5 introduce a way to run scripts in the background, separate from the main browser thread. They enable multitasking by allowing tasks to be offloaded to a different thread, preventing them from blocking the main user interface (UI) …

read more

How can you embed audio and video in HTML-5

In HTML5, you can embed audio and video content using the <audio> and <video> elements, respectively. The <audio> element is used to embed audio content in a web page. Here's an example:

read more