DEV Community

Cover image for JavaScript ‘this’ Keyword Explained with Simple Examples
WISDOMUDO
WISDOMUDO

Posted on

JavaScript ‘this’ Keyword Explained with Simple Examples

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) 
Enter fullscreen mode Exit fullscreen mode

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) 
Enter fullscreen mode Exit fullscreen 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 
Enter fullscreen mode Exit fullscreen mode

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 
Enter fullscreen mode Exit fullscreen mode

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 
Enter fullscreen mode Exit fullscreen mode

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 is undefined 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)