Swiftorial Logo
Home
Swift Lessons
Matchups
CodeSnaps
Tutorials
Career
Resources

JavaScript Essentials - This Keyword

Deep dive into the 'this' keyword

The this keyword in JavaScript can be confusing, especially for beginners. This tutorial provides a comprehensive understanding of how this works in different contexts.

Key Points:

  • The value of this depends on the execution context.
  • In global context, this refers to the global object.
  • In a function, this depends on how the function is called.
  • In a method, this refers to the object that owns the method.

Global Context

In the global context (outside of any function), this refers to the global object, which is window in browsers.


console.log(this); // Output: Window {...}
                

Function Context

Regular Functions

In a regular function, the value of this is determined by how the function is called.


function showThis() {
    console.log(this);
}
showThis(); // Output: Window {...}
                

Strict Mode

In strict mode, this in a function that is not a method is undefined.


"use strict";
function showThis() {
    console.log(this);
}
showThis(); // Output: undefined
                

Method Context

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


const obj = {
    name: 'Alice',
    greet: function() {
        console.log(this.name);
    }
};
obj.greet(); // Output: Alice
                

Constructor Functions

When a function is used as a constructor (with the new keyword), this refers to the newly created object.


function Person(name) {
    this.name = name;
}
const person = new Person('Bob');
console.log(person.name); // Output: Bob
                

Arrow Functions

Arrow functions do not have their own this context. Instead, this is inherited from the parent scope at the time the arrow function is defined.


const obj = {
    name: 'Charlie',
    greet: () => {
        console.log(this.name);
    }
};
obj.greet(); // Output: undefined
                

Summary

In this tutorial, you learned about the this keyword in JavaScript. Understanding how this works in different contexts is crucial for writing effective JavaScript code.