Skip to main content

Learn About Call(), Apply() and Bind() Method in JavaScript

Hello Guys,

In this blog your going to learn about CALL(), APPLY() and BIND() method in JavaScript with details understanding and examples.

Invoking a function with a specific this value is possible in JavaScript through call(), apply(), and bind(). These three methods may be comparable in terms of their function, but the way they operate and handle arguments set them apart.

call(), apply(), and bind() can be confusing to differentiate, so let's look at how each one differs from one another.


Call() :- 

  • Method used to invoke a function with specified this value and given arguments - call(). First argument is this value, followed by any expected arguments.
  • For instance, a case in point:


  • Calling findNames() in this scenario, we set the this value to person, thus causing person.name to equate to this.name within the function.


APPLY() :- 

  • Ahead of time, it's sometimes unclear how many arguments will be required when calling a function. 
  • In such instances, the apply() method is handy in that it takes an array of arguments rather than passing them one by one like call().

For instance:



  • Passing in two arguments through an array, we call the findNames() function and assign a this value of person in this instance.

BIND() :- 

  • The bind() method generates a fresh function that will eventually be called, but it doesn't execute the function immediately. 
  • Rather, it creates the function with a designated this value.

For instance, let me give you an illustration:


  • We will be logging a greeting message to the console when we call a function nowFindNames, with the 'person' value set as its 'this' parameter. 
  • The message that will display is "Hello, TechoSwags!"

The understanding of call(), apply() and bind() can be immensely beneficial as they allow for great flexibility in setting a function's this value. 

It is crucial to know how these methods differ in order to select the most suitable one for your individual requirements.

If you guys have any query then you can drop a mail to us on this mail id:

techoswag@gmail.com

Comments

Popular posts from this blog

Different between ``===`` and ``==`` operators in JavaScript

Hello Guys, In this blog we are going to learn about "===" and "==" different with details understanding and examples. JavaScript operators that you might have stumbled upon as a developer include "===", "==". JavaScript's "==" operator is commonly utilized for loose comparison purposes.  It functions by converting both of the values to a common type and then comparing them for equality.  Here's an example: The comparison operator "==" transforms the value of "17" from a string to a number before determining if the values match.  Consequently, if both versions of the data share the same properties and values, the comparison is marked as valid and returns true. The results of the "==" operator can occasionally be surprising, including: The comparison returns true when the "==" operator converts the empty string to the number 0 and compares it to the number 0.  This can result in bugs, so ...

What is the Lazy-loading in Angular and Different between Old syntax and New Syntax of Lazy-loading with examples

Hey Guys, In this blog we are going to learn about How we can use Lazy-loading in angular with examples. We are also going to learn the different syntax of lazy loading in angular . Lazy loading is used to load the specified module once the routes match. It will load the modules once use access that particular section or modules in our application. Using lazy loading will improve the performance of our application and also decrease the load time of our application. Using lazy-loading will help to reduce the bundle size of the application. Lazy -loading Old syntax in angular 7 or lower version          {                path: "feature",                loadChildren:'./feature-module/feature-module.module#FeatureModuleModule'          }, Lazy -loading new syntax in angular 8+   {     path:'feature',     loadChildren:() =>  import...