Patrón de encadenamiento de métodos
Parte de la sección Programación Orientada a Objetos del Journey de JavaScript de Coddy — lección 16 de 56.
El encadenamiento de métodos es un patrón de programación que permite llamar a múltiples métodos en el mismo objeto en una sola sentencia. Cada método devuelve el objeto en sí mismo (this), lo que permite llamar al siguiente método en la misma línea.
Crea un objeto contador simple:
const counter = {
count: 0,
increment() {
this.count++;
return this;
},
decrement() {
this.count--;
return this;
},
getValue() {
return this.count;
}
};Ahora puedes encadenar métodos:
// Encadenar múltiples operaciones
counter.increment().increment().decrement();
// El contador ahora es 1
console.log(counter.getValue()); // Salida: 1La clave para el encadenamiento de métodos es devolver this desde cada método que desees que sea encadenable.
Desafío
Se te proporciona un objeto calculator que ya tiene los métodos add() y subtract(). Tu tarea es agregar los métodos multiply y divide que devuelvan this para permitir el encadenamiento.
Hoja de referencia
El encadenamiento de métodos le permite llamar a múltiples métodos en el mismo objeto en una sola sentencia. Cada método devuelve el objeto en sí mismo (this), lo que permite que el siguiente método sea llamado en la misma línea.
Para habilitar el encadenamiento de métodos, devuelva this desde cada método:
const counter = {
count: 0,
increment() {
this.count++;
return this;
},
decrement() {
this.count--;
return this;
},
getValue() {
return this.count;
}
};Encadene múltiples métodos juntos:
counter.increment().increment().decrement();
console.log(counter.getValue()); // Output: 1Pruébalo tú mismo
import { calculator } from './calculator.js';
// Código de prueba - no modificar
const result1 = calculator.add(10).multiply(2).getValue();
console.log(result1); // Debería mostrar 20
// Reiniciar para la segunda prueba
calculator.value = 0;
const result2 = calculator.add(20).divide(4).subtract(1).getValue();
console.log(result2); // Debería mostrar 4Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Programación Orientada a Objetos
1Objetos y la palabra clave this
Repaso rápido: ObjetosAgregar métodos a los objetosEntendiendo la palabra clave thisFunciones constructorasLa palabra clave newDesafío de repaso7Herencia y la palabra clave extends
HerenciaLa relación "es-un"La palabra clave extendsEl método super()Heredar propiedades y métodosDesafío de repaso13Composición vs. Herencia
La relación "tiene-un" vs. "es-un"Los límites de la herencia profundaConstrucción de objetos2Organización del código
¿Qué son los módulos?Exportar con exportImportar con importExportaciones por defecto vs. nombradas5Encapsulamiento y Acceso
EncapsulamientoCampos de clase públicos y privadosMétodos privadosDesafío de repaso8Organización del código OOP
Organizar clases en módulos11Proyecto: Un renderizador de figuras
Configuración: Clase Figura y exportaciónHerencia de la clase Círculo14Sistema de Gestión de Biblioteca
Diseño de la BibliotecaClase Libro con Composición9Métodos y propiedades estáticos
Nivel de clase vs. Nivel de instanciaPropiedades estáticasMétodos de utilidad estáticosDesafío de repaso