Menu
Coddy logo textTech

Padrão de encadeamento de métodos

Parte da seção Programação Orientada a Objetos do Journey de JavaScript da Coddy — lição 16 de 56.

O encadeamento de métodos é um padrão de programação que permite chamar múltiplos métodos no mesmo objeto em uma única instrução. Cada método retorna o próprio objeto (this), permitindo que você chame o próximo método na mesma linha.

Crie um objeto contador simples:

const counter = {
  count: 0,
  
  increment() {
    this.count++;
    return this;
  },
  
  decrement() {
    this.count--;
    return this;
  },
  
  getValue() {
    return this.count;
  }
};

Agora você pode encadear métodos:

// Encadear múltiplas operações
counter.increment().increment().decrement();

// O contador agora é 1
console.log(counter.getValue()); // Saída: 1

A chave para o encadeamento de métodos é retornar this de cada método que você deseja que seja encadeável.

challenge icon

Desafio

Você recebeu um objeto calculator que já possui os métodos add() e subtract(). Sua tarefa é adicionar os métodos multiply e divide que retornam this para permitir o encadeamento.

Folha de consulta

O encadeamento de métodos permite que você chame múltiplos métodos no mesmo objeto em uma única instrução. Cada método retorna o próprio objeto (this), permitindo que o próximo método seja chamado na mesma linha.

Para habilitar o encadeamento de métodos, retorne this de cada método:

const counter = {
  count: 0,
  
  increment() {
    this.count++;
    return this;
  },
  
  decrement() {
    this.count--;
    return this;
  },
  
  getValue() {
    return this.count;
  }
};

Encadeie múltiplos métodos juntos:

counter.increment().increment().decrement();
console.log(counter.getValue()); // Output: 1

Experimente você mesmo

import { calculator } from './calculator.js';

// Código de teste - não modifique
const result1 = calculator.add(10).multiply(2).getValue();
console.log(result1); // Deve exibir 20

// Reiniciar para o segundo teste
calculator.value = 0;
const result2 = calculator.add(20).divide(4).subtract(1).getValue();
console.log(result2); // Deve exibir 4
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Programação Orientada a Objetos