DevPath · Aprende a programar ESPTEN

Funciones

Funciones como valores

Las funciones son valores de primera clase

Aquí JavaScript te da un poder que sorprende a quien viene de otros lenguajes: las funciones son valores como cualquier otro. Puedes guardarlas en variables, meterlas en arrays, pasarlas como argumento y devolverlas desde otra función, igual que harías con un número o un texto. Esto se llama "funciones de primera clase".

Pasar una función como argumento

Una función que recibe otra función se llama función de orden superior:

function aplicar(valor, operacion) {
  return operacion(valor);
}
const doble = n => n * 2;
console.log(aplicar(5, doble)); // 10

Devolver una función

function multiplicador(factor) {
  return n => n * factor;
}
const porTres = multiplicador(3);
console.log(porTres(10)); // 30

Esta idea, sencilla en apariencia, es la base de los patrones más potentes de JavaScript. Cuando una función "recuerda" valores de donde nació, tienes un closure: lo desbloquearás en el siguiente módulo, y es donde las funciones pasan de herramienta a verdadero superpoder.

Ejemplos

Guardar funciones en un objeto y llamarlas

const operaciones = {
  sumar: (a, b) => a + b,
  restar: (a, b) => a - b,
};
console.log(operaciones.sumar(2, 3));  // 5
console.log(operaciones.restar(7, 4)); // 3
Pon esto en práctica

DevPath es un curso práctico: aquí lees la teoría; en la app la pones en práctica con ejercicios que se ejecutan de verdad, sin conexión.

Empezar gratis en la app →
← Parámetros, valores por defecto y returnVer el módulo →