Función anidada
Lección 7 de 14 del curso Declaración de funciones en JavaScript de Coddy.
Las funciones anidadas son como superhéroes con ayudantes: son funciones poderosas que pueden crear y utilizar otras funciones dentro de ellas.
Una función anidada es una función definida dentro de otra función. La función interna tiene acceso a las variables y parámetros de la función externa, creando un ámbito local dentro de la función externa.
Imagina que tienes una función principal (el superhéroe) que necesita ayuda con una tarea específica. En lugar de depender de una función externa, puede crear una función de ayuda (el ayudante) dentro de sí misma para manejar esa tarea específica. Esta función de ayuda solo puede ser accedida y utilizada por la función principal. Por ejemplo:
function calculateDiscount(originalPrice, discountPercentage) {
function calculateDiscountAmount(price, discount) {
return price * discount; // Calcular el monto del descuento (función interna)
}
const discountAmount = calculateDiscountAmount(originalPrice, discountPercentage / 100);
const finalPrice = originalPrice - discountAmount;
return finalPrice;
}
const discountedPrice = calculateDiscount(100, 20);
console.log(discountedPrice); // Output: 80- Función Externa:
- Definimos una función llamada
calculateDiscountque toma dos argumentos:originalPriceydiscountPercentage.
- Definimos una función llamada
- Función Interna:
- Dentro de la función externa, definimos otra función llamada
calculateDiscountAmount. Esta es la función anidada. Toma dos argumentos:priceydiscount(observa que no tiene acceso directo aoriginalPriceodiscountPercentage).
- Dentro de la función externa, definimos otra función llamada
- Resultado: La función devuelve el precio final, que es 80 (después de aplicar el 20% de descuento).
Desafío
FácilTu tarea es crear una función anidada llamada calculateTaxAmount que debe tomar el price y el taxRate de la función externa calculateWithTax, calcular el monto del impuesto y devolverlo. (El monto del impuesto es el precio multiplicado por la tasa de impuesto)
Finalmente, la función externa debe calcular y devolver el precio final (incluyendo el impuesto) sumando el monto del impuesto al precio original y devolver el precio final.
Pruébalo tú mismo
function calculateWithTax(product) {
let price = product.price;
let taxRate = product.taxRate;
// escribe el código aquí
}
Todas las lecciones de Declaración de funciones en JavaScript
1Introducción al curso
¿Qué aprenderás?2Introducción a las funciones
¿Qué es una función?Funciones purasEjercicio de funciones #1Ejercicio de funciones #23Formas de declaración de funciones
Función básicaFunción anidadaRetornar una funciónExpresiones de funciónFunciones de flechaConstructor de funciones