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: 1A chave para o encadeamento de métodos é retornar this de cada método que você deseja que seja encadeável.
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: 1Experimente 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 4Esta 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
1Objetos e a Palavra-chave this
Revisão Rápida: ObjetosAdicionando Métodos a ObjetosEntendendo a Palavra-chave thisFunções ConstrutorasA Palavra-chave newDesafio de Recapitulação7Herança e a palavra-chave extends
HerançaA relação "é um"A palavra-chave extendsO método super()Herdando propriedades e métodosDesafio de recapitulação10Polimorfismo
O que é Polimorfismo?Sobrescrevendo Métodos HerdadosUsando superDesafio de Recapitulação13Composição vs. Herança
A relação "tem um" vs. "é um"Os limites da herança profundaConstruindo objetos2Organizando o Código
O que são Módulos?Exportando com exportImportando com importExportações Default vs. Nomeadas5Encapsulamento e Acesso
EncapsulamentoCampos de Classe Públicos e PrivadosMétodos PrivadosDesafio de Recapitulação8Organizando Código POO
Organizar Classes em Módulos11Projeto: Um Renderizador de Formas
Configuração: Classe Shape e ExportaçãoHerança da Classe Circle14Sistema de Gerenciamento de Biblioteca
Projetando a BibliotecaClasse Livro com Composição