Lesson 29 / 40

Classes & Constructors

Create objects with the class keyword and constructors, and see how classes sit on top of prototypes.

class and constructor

constructor runs automatically when you create an object with new, setting up its initial properties.

class Dog {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }
  bark() {
    return `${this.name} says Woof!`;
  }
}
const rex = new Dog("Rex", 3);
console.log(rex.bark());

Classes are syntax sugar

Under the hood, JS classes still use prototypes — class is a cleaner syntax over the same prototype-based system.

The new keyword

Forgetting new before a class constructor throws a TypeError — classes can't be called like regular functions.