Course Content
The Complete Frontend Developer Roadmap
The Complete Frontend Developer Roadmap
0/1
Lesson 1:- What is JavaScripts
Introduction to JavaScripts
0/1
Lesson 2:- JavaScript Course for Beginners – Your First Step to Web Development
JavaScript Course for Beginners
0/1
Lesson 3:-Object-oriented Programming in JavaScript: Made Super Simple
Object-oriented Programming in JavaScript
0/1
Lesson 4:- JavaScript Arrays
JavaScript Arrays
0/1
Less0n 5:- JavaScript Functions
JavaScript Functions
0/1
Lesson 6:- JavaScript Strings
JavaScript Strings
0/1
Lesson 7:- JavaScript if else
JavaScript if else
0/1
Lesson 8:- JavaScript Loops
JavaScript Loops
0/1
Lessons 9:- JavaScript Factory Functions
JavaScript Factory Functions
0/1
Lesson 10:- JavaScript Constructor Functions
JavaScript Constructor Functions
0/1
Lesson 11:- JavaScript Getters and Setters
JavaScript Getters and Setters
0/1
Lesson 12:- JavaScript Value vs Reference Types
JavaScript Value vs Reference Types
0/1
Lesson 13:- JavaScript Scope (Local vs Global)
JavaScript Scope (Local vs Global)
0/1
Lesson 14:- JavaScript Let vs Var vs Constant
JavaScript Let vs Var vs Constant
0/1
Lesson 15:- JavaScript Cloning an Object
JavaScript Cloning an Object
0/1
Lesson 16:- JavaScript this Keyword
JavaScript this Keyword
0/1
Lesson 17:- JavaScript Template Literals
JavaScript Template Literals
0/1
Lesson 18:- JavaScript Array Filter
JavaScript Array Filter
0/1
Lesson 19:- JavaScript Array Map
JavaScript Array Map
0/1
Lesson 20:- JavaScript Array Reduce
JavaScript Array Reduce
0/1
Extra Lesson 1:-Learn Modern JavaScript in 1 Hour
Learn Modern JavaScript in 1 Hour
0/1
Extra Lesson 2:- JavaScript Unit Testing Tutorial for Beginners
JavaScript Unit Testing Tutorial for Beginners
0/1
Extra Lesson 3:- React Testing for Beginners
React Testing for Beginners
0/1
9 Reasons People Hate JavaScript
9 Reasons People Hate JavaScript
0/1
JavaScripts for Beginners
About Lesson

JavaScript this Keyword

The this keyword in JavaScript refers to the current execution context of the code. Its value changes depending on how the function is called.

Key Scenarios:

  • Method Calls:

    • When a function is called as a method of an object, this refers to that object.
    JavaScript

     
    const person = {
      firstName: "John",
      lastName: "Doe",
      fullName: function() {
        return this.firstName + " " + this.lastName; 
      }
    };
    
    console.log(person.fullName()); // Output: "John Doe" 
    
  • Function Invocation:

    • When a function is called as a standalone function (not as a method), this usually refers to the global object (e.g., window in a browser environment).
    JavaScript

     
    function greet() {
      console.log(this); // Output: Window object (or similar)
    }
    
    greet(); 
    
  • Constructor Functions:

    • Inside a constructor function, this refers to the object being created.
    JavaScript

     
    function Person(firstName, lastName) {
      this.firstName = firstName;
      this.lastName = lastName;
    }
    
  • Arrow Functions:

    • Arrow functions have a special behavior regarding this. They inherit the this value from the surrounding scope.
    JavaScript

     
    const person = {
      firstName: "John",
      greet: () => {
        console.log(this); // Output: Window object (or similar)
      }
    };
    
    person.greet(); 
    

Controlling this:

  • bind():

    • Creates a new function with a specified this value.
    JavaScript

     
    const person = { 
      firstName: "John" 
    };
    
    function greet() {
      console.log("Hello, " + this.firstName);
    }
    
    const boundGreet = greet.bind(person); // Bind greet to the person object
    boundGreet(); // Output: "Hello, John"
    
  • call() and apply():

    • Similar to bind(), but they immediately invoke the function with the specified this value and arguments.

Understanding this is crucial for writing correct and predictable JavaScript code, especially when working with objects and methods.