Métodos de utilidad estáticos
Parte de la sección Programación Orientada a Objetos del Journey de JavaScript de Coddy — lección 33 de 56.
Los métodos estáticos son funciones de utilidad que pertenecen a la clase misma en lugar de a las instancias de la clase. Son útiles para funciones que no requieren acceso a datos específicos de la instancia.
Vamos a crear una clase con un método de utilidad estático:
class MathHelper {
// Definir un método estático
static square(number) {
return number * number;
}
}Para llamar a un método estático, se utiliza el nombre de la clase directamente:
// Llamar al método estático sin crear una instancia
const result = MathHelper.square(5);
console.log(result); // 25Observa que no necesitamos crear una nueva instancia con new MathHelper(). Los métodos estáticos son perfectos para funciones de utilidad que realizan operaciones sin necesidad de datos de instancia.
Desafío
Crea una clase llamada StringUtils con un método estático llamado capitalize que tome una cadena como argumento y devuelva la misma cadena con la primera letra en mayúscula. Por ejemplo, si la entrada es "javascript", el método debería devolver "Javascript". Exporta esta clase.
- Comprueba si la cadena está vacía:
if (!str || str.length === 0)(Sin esta comprobación, una cadena vacía podría causar problemas).!strcomprueba si esnull/undefined(evita errores)str.length === 0comprueba si la cadena está vacía (devuelve "" en lugar de fallar)
- Obtén el primer carácter:
str.charAt(0) - Ponlo en mayúscula:
.toUpperCase() - Obtén el resto de la cadena:
str.slice(1)(desde la posición 1 hasta el final) - Combina: el primer carácter en mayúscula + el resto de la cadena
Hoja de referencia
Los métodos estáticos son funciones de utilidad que pertenecen a la clase misma en lugar de a las instancias. No requieren acceso a datos específicos de la instancia.
Define un método estático utilizando la palabra clave static:
class MathHelper {
static square(number) {
return number * number;
}
}Llama a los métodos estáticos directamente en la clase sin crear una instancia:
const result = MathHelper.square(5);
console.log(result); // 25Métodos de cadena útiles para utilidades estáticas:
str.charAt(0)- obtiene el primer carácterstr.toUpperCase()- convierte a mayúsculasstr.slice(1)- obtiene la subcadena desde la posición 1 hasta el final!str || str.length === 0- comprueba si es nulo/indefinido o una cadena vacía
Pruébalo tú mismo
import { StringUtils } from './stringUtils.js';
// No modifiques el código a continuación
console.log(StringUtils.capitalize("programming"));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
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