DevPath · Aprenda a programar ESPTEN

Programação orientada a objetos

Objetos e this

Objetos com comportamento

Um objeto agrupa dados (propriedades) e comportamento (métodos). Um método é simplesmente uma função guardada como propriedade:

const conta = {
  saldo: 100,
  depositar(quantia) {
    this.saldo += quantia;
  },
};
conta.depositar(50);
console.log(conta.saldo); // 150

A palavra-chave this

Dentro de um método, this se refere ao objeto sobre o qual o método foi chamado. Por isso this.saldo acessa o saldo desse objeto específico.

this é dinâmico: seu valor depende de como a função é chamada, não de onde ela foi definida. Quando você chama conta.depositar(50), this é conta.

As funções de seta não têm seu próprio this: elas herdam o do contexto que as envolve. Por isso, para métodos de objeto costuma-se preferir a sintaxe metodo() { ... }.

Exemplos

Um objeto com método e this

const contador = {
  valor: 0,
  incrementar() {
    this.valor++;
    return this.valor;
  },
};
console.log(contador.incrementar());
console.log(contador.incrementar());
Coloque isto em prática

O DevPath é um curso prático: aqui você lê a teoria; no app você a coloca em prática com exercícios que rodam de verdade, offline.

Comece grátis no app →
Classes, constructor e métodos →