Learn how the JavaScript ‘this’ keyword works with simple examples. This beginner’s guide explains global, function, object, arrow function, and class contexts.
Introduction
If you’ve started learning JavaScript, you’ve likely come across the keyword this
. For many beginners, it’s one of the most confusing parts of the language. The reason is that the value of this
changes depending on how and where it is used.
But don’t worry, once you understand the rules, this
becomes much easier to work with.
What You’ll Learn
By the end of this guide, you will:
- Understand what the
this
keyword means in JavaScript. - Learn how
this
behaves in different situations. - See how
this
works in functions, objects, and classes. - Discover common mistakes beginners make when using
this
. - Gain confidence in using
this
with real-world examples.
What Is this
Keyword?
In JavaScript, this
represents the object that is calling or executing the function.
Think of it as a reference that points to something different depending on the context in which it appears.
How this Works in Different Contexts
1. Global Context
In the global scope (outside of any function), this
refers to the global object.
- In browsers, the global object is
window
.
console.log(this); // window (in browsers)
2. Inside a Function
In a regular function, this
depends on how the function is called.
function showThis() {
console.log(this);
}
showThis(); // window (in non-strict mode)
In strict mode, this inside a function becomes undefined.
3. Inside an Object Method
When a function is a method of an object, this
refers to that object.
const user = {
name: "Wisdom",
greet: function() {
console.log(this.name);
}
};
user.greet(); // Wisdom
4. In Arrow Functions
Arrow functions don’t have their own this
. Instead, they use the this
value from their surrounding context.
const user = {
name: "Udo",
greet: () => {
console.log(this.name);
}
};
user.greet(); // undefined, because arrow functions don’t bind their own this
5. In Classes
Inside a class, this
usually refers to the instance of the class.
class Person {
constructor(name) {
this.name = name;
}
sayName() {
console.log(this.name);
}
}
const person1 = new Person("Wisdom");
person1.sayName(); // Wisdom
Common Mistakes with this
-
Forgetting the context: Beginners often expect
this
to always refer to the same thing, but it changes depending on where it’s used. -
Arrow functions in objects: Using arrow functions for object methods can lead to unexpected results, since they don’t bind their own context.
this
. -
Strict mode differences: In strict mode,
this
inside functions isundefined
instead of the global object.
Conclusion
The this
Keyword in JavaScript may seem confusing at first, but it always follows clear rules. In the global scope, it usually points to the global object, while inside functions, its value depends on how those functions are called. Within object methods, this
refers to the object itself, and in classes, it points to the specific instance that has been created. Arrow functions behave differently, borrowing this
from their surrounding context.
By practicing these scenarios, you’ll gradually see that this
is not as mysterious as it first appears. Understanding how this
Behaviors will make your JavaScript code more predictable, reliable, and easier to debug is an essential step toward becoming a confident developer.
You can reach out to me via LinkedIn
Top comments (0)