Menu
Coddy logo textTech

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 calculateDiscount que toma dos argumentos: originalPrice y discountPercentage.
  • Función Interna:
    • Dentro de la función externa, definimos otra función llamada calculateDiscountAmount. Esta es la función anidada. Toma dos argumentos: price y discount (observa que no tiene acceso directo a originalPrice o discountPercentage).
  • Resultado: La función devuelve el precio final, que es 80 (después de aplicar el 20% de descuento).
challenge icon

Desafío

Fácil

Tu 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