AnyCompiler

Classes e Objects

Uma classe é um modelo para criar objetos que agrupam dados (propriedades) junto com as funções que operam sobre esses dados (métodos). Todo cachorro que você criar a partir de uma classe Dog compartilha a mesma estrutura, mas guarda seus próprios valores.

class Dog {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }

  bark() {
    return `${this.name} says Woof!`;
  }
}

const myDog = new Dog("Rex", 3);
console.log(myDog.name);
console.log(myDog.bark());
Output
Rex
Rex says Woof!
  • constructor roda automaticamente quando você cria um novo objeto com new — é onde você configura os dados iniciais do objeto
  • this se refere ao objeto específico sobre o qual um método está sendo chamado — é como um método acessa as próprias propriedades do objeto
  • this.name = name armazena o valor como uma propriedade, então qualquer método deste objeto pode acessá-lo depois
  • new Dog("Rex", 3) cria um objeto real (uma "instância") da classe Dog

Você poderia criar quantos cachorros quisesse a partir da mesma classe — new Dog("Bella", 5), new Dog("Max", 1) — cada um mantendo seu próprio nome e idade de forma independente.

A seguir: promises e async/await — como o JavaScript lida com operações que levam tempo.

Exercício de Prática

Adicione um método honk() à classe Car que retorne `${this.make} says beep!`, e depois imprima o resultado de chamá-lo em um new Car("Toyota").