Menu
Coddy logo textTech

Métodos privados

Parte de la sección Programación Orientada a Objetos del Journey de JavaScript de Coddy. Lección 19 de 56.

Los métodos privados en las clases de JavaScript te permiten ocultar los detalles de implementación y evitar el acceso externo a la funcionalidad interna.

A partir de ES2022, los métodos privados se pueden definir usando el prefijo #:

class Counter {
  #count = 0;
  
  // Crea un método privado
  #increment() {
    this.#count++;
  }
  
  // Método público que usa el método privado
  addOne() {
    this.#increment();
    return this.#count;
  }
}

Creemos una instancia de Counter:

const myCounter = new Counter();

Podemos llamar al método público:

console.log(myCounter.addOne()); // Salida: 1

Pero intentar acceder directamente al método privado provocará un error:

myCounter.#increment(); // Error: El método privado no es accesible fuera de la clase

Los métodos privados ayudan a mantener la encapsulación al mantener ocultos del mundo exterior los detalles internos de implementación.

challenge icon

Desafío

Se te proporciona una clase MessageBox que almacena mensajes. Tu tarea es añadir un método privado llamado #isValidMessage(text) que valide los mensajes. Debe:

  • Devolver true si el texto no está vacío y tiene menos de 100 caracteres
  • Devolver false en cualquier otro caso

Pruébalo tú mismo

import { MessageBox } from './messageBox.js';

// Usando el cuadro de mensajes
const box = new MessageBox();

console.log(box.setMessage("Hello"));    // "Message set!" (uses #isValidMessage)
console.log(box.setMessage(""));         // "Invalid message!" (uses #isValidMessage)
quiz iconPonte a prueba

Esta 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

Practica por tu cuenta: Compilador de JavaScript online