'this' Keyword in Javascript

  • In JavaScript, the this keyword refers to the current execution context, specifically the object that the current code is being executed in.
  • When a function is a method of an object and is invoked using dot notation, this refers to the object that the method belongs to.
Here is an example to illustrate how the this keyword can be used in a real-world scenario:


    const person = {
        firstName: "John",
        lastName: "Doe",
        fullName: function () {
            return this.firstName + " " + this.lastName;
        }
    };

    console.log(person.fullName()); // Output: "John Doe"

  • In this example, we have an object called person that has properties for firstName and lastName. It also has a method called fullName that uses this to refer to the person object and return the full name of the person. When we call person.fullName(), the value of this inside the fullName method is set to the person object, so it returns the correct full name.
  • The this keyword can also be used in constructor functions to create new objects based on a blueprint or template. Here's an example:

    function Person(firstName, lastName) {
        this.firstName = firstName;
        this.lastName = lastName;
        this.fullName = function () {
            return this.firstName + " " + this.lastName;
        }
    }

    const john = new Person("John", "Doe");
    console.log(john.fullName()); // Output: "John Doe"

  • In this example, we have a constructor function called Person that takes two parameters for firstName and lastName. Inside the function, we use this to create properties for the firstName and lastName of the new object. We also create a method called fullName that returns the full name of the person using this. When we create a new object using new Person("John", "Doe"), the this keyword inside the Person function refers to the new object being created.
  • In conclusion, the this keyword is an essential tool in JavaScript that allows for flexible and reusable code. By using this, we can create functions and objects that can be used in different contexts, making our code more efficient and easier to maintain.

No comments:

Post a Comment