Parámetros nombrados
Cómo usar la técnica de parámetros nombrados mediante la desestructuración de objetos para crear funciones más legibles y escalables.
Parámetros Nombrados
Los parámetros nombrados son una técnica en la que, en lugar de pasar múltiples argumentos individuales a una función, se le pasa un único objeto que es desestructurado internamente por la función.
¿Cuándo usar esta técnica?
Es especialmente recomendable cuando una función recibe más de tres o cuatro parámetros, o cuando sabemos que el número de argumentos podría aumentar en el futuro. Esta práctica nos brinda tres beneficios clave:
- Escalabilidad: Podemos agregar nuevos parámetros sin romper las llamadas existentes a la función.
- Legibilidad: Al invocar la función, queda claro qué significa cada valor (no dependemos solo del orden).
- Seguridad: Evitamos errores comunes al confundir el orden de los parámetros (como intercambiar
ageconsex).
Ejemplo: Comparativa
Forma tradicional (Basada en posición)
En este caso, debemos respetar estrictamente el orden. Si queremos omitir la edad pero pasar el trabajo, nos vemos obligados a enviar un undefined intermedio.
function createPerson(name, lastName, sex, age = 18, job) {
// lógica...
}
createPerson("Miguel", "Gil", "Masculino", undefined, "Programador");Usando parámetros nombrados (Basada en objeto)
Al usar un objeto desestructurado, el orden deja de importar y el código se vuelve mucho más explícito.
function createPerson({ name, lastName, sex, age = 18, job } = {}) {
// lógica...
}
// Llamada clara y ordenada
createPerson({
name: "Miguel",
lastName: "Gil",
sex: "Masculino",
job: "Programador"
// age se omitió, por defecto será 18
});En la definición de la función, cada propiedad se extrae automáticamente del objeto recibido. Si falta alguna propiedad que no tiene valor por defecto, se cargará como undefined.
Manejo de errores: Objeto opcional
Un error común al usar esta técnica es llamar a la función sin pasarle ningún argumento:
createPerson(); // Lanzaría un TypeError: Cannot destructure property...Esto ocurre porque el motor intenta desestructurar algo que no existe (undefined). Para solucionarlo, asignamos un objeto vacío por defecto al parámetro de la función:
function createPerson({ name, lastName, age = 18 } = {}) {
// Si no se pasa nada, el parámetro es {} por defecto
// y la desestructuración no falla.
}Al agregar = {}, hacemos que pasar un objeto sea opcional. Si no se envía nada, los valores internos simplemente se evaluarán como undefined (o su valor por defecto) sin romper la ejecución del programa.
Errores. Manejo y Creación de errores personalizados
Cómo gestionar excepciones de forma profesional en JavaScript mediante el objeto Error y la creación de clases de error personalizadas.
Recursividad y la Sucesión de Fibonacci
El concepto de recursividad en JavaScript y cómo aplicarlo para resolver la Sucesión de Fibonacci mediante funciones que se llaman a sí mismas.