Skip to main content

Command Palette

Search for a command to run...

Understanding the this Keyword in JavaScript

Updated
2 min read
D
Passionate about JavaScript, backend development, and building real-world projects. Currently learning and sharing concepts like async/await, promises, and core JS fundamentals. Open to internships and collaboration

The this keyword in JavaScript is one of the most confusing concepts for beginners. The reason is simple:

=> this does not refer to a fixed object — it depends on how a function is called.

If you understand who is calling the function, you can easily understand this.

What Does this Represent?

this refers to the object that is executing the current function.

Think of it as:

“Who is calling this function?”

this in Global Context

In the global scope, this refers to the global object.

Example (Browser):

console.log(this);

In browsers, this refers to window.

this Inside Objects

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

Example:

const user = {
  name: "Dipanshu",
  greet: function () {
    console.log(this.name);
  }
};

user.greet(); // Dipanshu

Here, this = user

this Inside Regular Functions

In a normal function, this depends on how the function is called.

Example:

function show() {
  console.log(this);
}

show();

In non-strict mode → this = global object
In strict mode → this = undefined

How Calling Context Changes this

This is the most important rule:

this depends on the caller, not where the function is written.

Example:

const user1 = {
  name: "Dipanshu",
  greet: function () {
    console.log(this.name);
  }
};

const user2 = {
  name: "Rahul"
};

user2.greet = user1.greet;

user2.greet(); // Rahul

Same function, different caller → different this

this in Arrow Functions

Arrow functions do not have their own this. They inherit it from the surrounding scope.

Example:

const user = {
  name: "Dipanshu",
  greet: () => {
    console.log(this.name);
  }
};

user.greet(); // undefined

Arrow functions use the outer this, not the object.

Diagram: Caller → Function Relationship

Object (caller)
     ↓
Calls function
     ↓
this refers to that object

Different Contexts of this

Global → window (browser)
Object method → object
Regular function → depends on call
Arrow function → inherits from parent

Why Understanding this Matters

  • Helps in object-oriented programming

  • Important for frameworks like React

  • Common interview topic

  • Avoids unexpected bugs

Conclusion

The this keyword is not complicated once you understand one rule:

It depends on the caller of the function.

Master this concept, and a big part of JavaScript becomes much clearer.