Menu
Coddy logo textTech

Funkcja zagnieżdżona

Lekcja 7 z 14 w kursie Deklaracje funkcji w JavaScript w Coddy.

Funkcje zagnieżdżone przypominają superbohaterów z pomocnikami — to potężne funkcje, które mogą tworzyć i używać innych funkcji wewnątrz siebie.

Funkcja zagnieżdżona to funkcja zdefiniowana wewnątrz innej funkcji. Funkcja wewnętrzna ma dostęp do zmiennych i parametrów funkcji zewnętrznej, co tworzy lokalny zakres wewnątrz funkcji zewnętrznej.

Wyobraź sobie, że masz główną funkcję (superbohatera), która potrzebuje pomocy przy konkretnym zadaniu. Zamiast korzystać z zewnętrznej funkcji, może utworzyć wewnątrz siebie funkcję pomocniczą (pomocnika), która wykona to konkretne zadanie. Do tej funkcji pomocniczej może mieć dostęp i używać jej tylko główna funkcja. Na przykład:

function calculateDiscount(originalPrice, discountPercentage) {
  	function calculateDiscountAmount(price, discount) {
    	return price * discount; // Oblicz kwotę rabatu (funkcja wewnętrzna)
  	}

  	const discountAmount = calculateDiscountAmount(originalPrice, discountPercentage / 100);
  	const finalPrice = originalPrice - discountAmount;
  	return finalPrice;
}

const discountedPrice = calculateDiscount(100, 20);
console.log(discountedPrice); // Wynik: 80
  • Funkcja zewnętrzna:
    • Definiujemy funkcję o nazwie calculateDiscount, która przyjmuje dwa argumenty: originalPrice i discountPercentage.
  • Funkcja wewnętrzna:
    • Wewnątrz funkcji zewnętrznej definiujemy kolejną funkcję o nazwie calculateDiscountAmount. To funkcja zagnieżdżona. Przyjmuje dwa argumenty: price i discount (zauważ, że nie ma bezpośredniego dostępu do originalPrice ani discountPercentage).
  • Wynik: Funkcja zwraca cenę końcową, która wynosi 80 (po zastosowaniu rabatu w wysokości 20%).
challenge icon

Wyzwanie

Łatwy

Twoim zadaniem jest utworzenie zagnieżdżonej funkcji o nazwie calculateTaxAmount, która powinna pobierać wartości price i taxRate z funkcji zewnętrznej calculateWithTax, obliczać kwotę podatku i ją zwracać. (Kwota podatku to cena pomnożona przez stawkę podatku.)

Na koniec funkcja zewnętrzna powinna obliczyć i zwrócić cenę końcową (z podatkiem), dodając kwotę podatku do pierwotnej ceny.

Spróbuj swoich sił

function calculateWithTax(product) {
    let price = product.price;
    let taxRate = product.taxRate;
   // napisz kod tutaj
}

Wszystkie lekcje w sekcji Deklaracje funkcji w JavaScript

Poćwicz samodzielnie: Kompilator JavaScript online