• Mail us
  • Book a Meeting
  • Call us
  • Chat with us

NodeJS

Mastering call, apply, and bind in JavaScript: A Comprehensive Guide


Introduction

Here, first we will discuss why we need to require the call, apply & bind methods are required. So, first we will start with the problem statement with an example.

Problem Statement Example

The example below creates an object with 3 properties, firstName, lastName, fullName.

const person = {firstName: "John",lastName: "Doe",fullName: function () {return this.firstName + " " + this.lastName;}}// This will return "John Doe":person.fullName();const person2 = {firstName: "Kelvin",lastName: "Saw",fullName: function () {return this.firstName + " " + this.lastName;}}// This will return "Kelvin Saw":person2.fullName(); 

You can see that the same function is being called multiple times, which causes duplication and is not reusable.

JavaScript Methods to Solve the Problem

There are three methods provided in JavaScript to solve this problem: Call, Apply & Bind.

Call Method

The call() method is a predefined JavaScript method.

It can be used to invoke (call) a method with an object as an argument (parameter).

Example:

function showName() {return this.firstName + " " + this.lastName;}const person = {firstName: "John",lastName: "Doe"};console.log(showName.call(person)); // Output: "John Doe"const person2 = {firstName: "Kelvin",lastName: "Saw"};console.log(showName.call(person2)); // Output: "Kelvin Saw"

The call() Method with Arguments

function showName(city, country) {return this.firstName + " " + this.lastName + "," + city + "," + country;}const person = {firstName: "John",lastName: "Doe"};console.log(showName.call(person, "Ahmedabad", "India")); // Output: "John Doe, Ahmedabad, India"const person2 = {firstName: "Kelvin",lastName: "Saw"};console.log(showName.call(person2, "Maxico", "US")); // Output: "Kelvin Saw, Maxico, US"

Apply Method

The apply method works similarly to call, but it takes an array of arguments instead of listing them individually.

Example:

function showName(city, country) {return this.firstName + " " + this.lastName + "," + city + "," + country;}const person = {firstName: "John",lastName: "Doe"};console.log(showName.apply(person, ["Ahmedabad", "India"])); // Output: "John Doe, Ahmedabad, India"const person2 = {firstName: "Kelvin",lastName: "Saw"};console.log(showName.apply(person2, ["Maxico", "US"])); // Output: "Kelvin Saw, Maxico, US"

Bind Method

The bind method returns a new function with a permanently bound this value. Unlike call and apply, bind does not execute the function immediately.

Example:

function greeting(greetingMsg) {return greetingMsg + ", " + this.firstName + " " + this.lastName;}const person = {firstName: "John",lastName: "Doe"};const bindMethod = greeting.bind(person, "Hello");// When you need to retrieve the data, call the method like this:console.log(bindMethod()); // Output: Hello, John Doe 

Ready to transform your business with our technology solutions? Contact Us today to Leverage Our NodeJS Expertise.

Share

facebook
LinkedIn
Twitter
Mail
AI/ML

Related Center Of Excellence