Qué son las funciones que devuelven funciones en JS

| Última modificación: 25 de junio de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

En el apasionante mundo de la programación, JavaScript (JS) destaca como uno de los lenguajes más versátiles y utilizados. Una de las características poderosas de JS es la capacidad de trabajar con funciones que devuelven funciones. En este artículo, exploraremos qué son las funciones que devuelven funciones en JS, cómo funcionan y cómo pueden ser útiles en el desarrollo web. Así que prepárate para sumergirte en el fascinante mundo de las funciones en JavaScript.

¿Qué son las funciones que devuelven funciones en JS?

Para comprender las funciones que devuelven funciones en JS, primero debemos tener claro qué es una función en este lenguaje de programación. Una función en JS es un bloque de código que realiza una tarea específica cuando se invoca. Las funciones son esenciales para organizar y reutilizar código en el desarrollo web.

Ahora bien, las funciones que devuelven funciones en JS son simplemente funciones que, en lugar de devolver un valor o realizar una tarea específica, ¡devuelven otra función! Esto puede sonar un poco abstracto al principio, pero es una característica poderosa que permite la creación de estructuras de código flexibles y dinámicas.

Ejemplo práctico

Vamos a sumergirnos en un ejemplo concreto para comprender mejor cómo funcionan las funciones que devuelven funciones en JS. Imagina que estamos construyendo una aplicación web y queremos generar diferentes funciones para calcular impuestos según el país de residencia de un usuario. En lugar de escribir funciones separadas para cada país, podemos utilizar una función que devuelve una función de cálculo de impuestos específica. Veamos cómo se haría:

function calcularImpuestos(pais) { 
if (pais === 'España') { 
return function(monto) { 
return monto * 0.21; 
}; 
} else if (pais === 'Francia') { 
return function(monto) { 
return monto * 0.20; 
}; 
} else { 
return function(monto) { 
return monto * 0.18; 
}; 
} 
} 
const calcularImpuestosParaEspana = calcularImpuestos('España'); 
const calcularImpuestosParaFrancia = calcularImpuestos('Francia'); 
const montoFactura = 1000; 
console.log(`Impuestos en España: ${calcularImpuestosParaEspana(montoFactura)}`); console.log(`Impuestos en Francia: ${calcularImpuestosParaFrancia(montoFactura)}`);

En el código anterior, la función calcularImpuestos toma como parámetro el país y devuelve una función de cálculo de impuestos específica para ese país. Esto nos permite reutilizar la lógica de cálculo de impuestos de manera eficiente para diferentes países.

Funciones internas y declaración de función

Observa que dentro de la función calcularImpuestos, se declaran funciones internas que realizan el cálculo de impuestos para cada país. Estas funciones internas son las que se devuelven según el país seleccionado.

Parámetros predeterminados y el mismo nombre para todas las variables

Es importante destacar que, en el ejemplo anterior, todas las funciones internas utilizan el mismo nombre de variable monto. Esto se debe a que JavaScript permite que las funciones internas accedan a las variables de la función externa, incluso después de que la función externa haya finalizado. Esto se conoce como cierre léxico o closure en JavaScript.

Además, si observas el código, notarás que no se especifican parámetros predeterminados para la función calcularImpuestos. Esto significa que, si el país no coincide con ‘España’ ni ‘Francia’, se utilizará una tasa de impuestos predeterminada del 18%.

¿Cómo pueden ser útiles las funciones que devuelven funciones en el desarrollo web?

Ahora que hemos explorado cómo funcionan las funciones que devuelven funciones en JS, es hora de entender por qué son útiles en el desarrollo web:

Configuración dinámica

Imagina que estás construyendo una aplicación web compleja que necesita adaptarse a diferentes entornos. Las funciones que devuelven funciones en JS te permiten configurar dinámicamente el comportamiento de tu aplicación según las necesidades específicas. Puedes cambiar el comportamiento de una función simplemente eligiendo la función adecuada en tiempo de ejecución.

Abstracción de lógica

Las funciones que devuelven funciones en JS te permiten abstraer la lógica compleja en funciones reutilizables y fáciles de entender. Esto hace que tu código sea más limpio y mantenible, ya que puedes aislar la complejidad en funciones específicas.

Composición de funciones

Puedes combinar funciones que devuelven funciones en JS para crear flujos de trabajo complejos y personalizables. Esto te da un alto grado de flexibilidad en la construcción de aplicaciones web. Puedes crear fácilmente tuberías de funciones que procesen datos de manera eficiente.

Las funciones que devuelven funciones en JavaScript son una característica poderosa que te permite crear código más dinámico, reutilizable y flexible en el desarrollo web.

¿Listo para llevar tus habilidades de desarrollo web al siguiente nivel? Entonces, considera unirte a nuestra gran formación intensiva: el Desarrollo Web Full Stack Bootcamp. En este bootcamp, no solo aprenderás sobre JavaScript y sus características avanzadas, como las funciones que devuelven funciones, sino que también adquirirás un conjunto completo de habilidades para convertirte en un profesional de desarrollo web de primer nivel. ¡Solicita información ya mismo e impulsa tu futuro con KeepCoding!

Alberto Casero

Alberto Casero es CTO en Watium, Fundador de Kas Factory & Coordinador del Bootcamp en Desarrollo Web.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Desarrollo Web

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado