Funzione annidata
Lezione 7 di 14 del corso Dichiarazioni di funzione in JavaScript di Coddy.
Le funzioni annidate sono come supereroi con dei compagni di avventura: sono funzioni potenti che possono creare e usare altre funzioni al loro interno.
Una funzione annidata è una funzione definita all'interno di un'altra funzione. La funzione interna ha accesso alle variabili e ai parametri della funzione esterna, creando uno scope locale all'interno della funzione esterna.
Immagina di avere una funzione principale (il supereroe) che ha bisogno di aiuto per un compito specifico. Invece di affidarsi a una funzione esterna, può creare al suo interno una funzione di supporto (il compagno di avventura) per svolgere quel compito specifico. È possibile accedere a questa funzione di supporto e usarla solo dalla funzione principale. Per esempio:
function calculateDiscount(originalPrice, discountPercentage) {
function calculateDiscountAmount(price, discount) {
return price * discount; // Calcola l'importo dello sconto (funzione interna)
}
const discountAmount = calculateDiscountAmount(originalPrice, discountPercentage / 100);
const finalPrice = originalPrice - discountAmount;
return finalPrice;
}
const discountedPrice = calculateDiscount(100, 20);
console.log(discountedPrice); // Output: 80- Funzione esterna:
- Definiamo una funzione chiamata
calculateDiscountche accetta due argomenti:originalPriceediscountPercentage.
- Definiamo una funzione chiamata
- Funzione interna:
- All'interno della funzione esterna, definiamo un'altra funzione chiamata
calculateDiscountAmount. Questa è la funzione annidata. Accetta due argomenti:priceediscount(nota che non ha accesso diretto aoriginalPriceodiscountPercentage).
- All'interno della funzione esterna, definiamo un'altra funzione chiamata
- Output: La funzione restituisce il prezzo finale, che è 80 (dopo aver applicato lo sconto del 20%).
Sfida
FacileIl tuo compito è creare una funzione annidata denominata calculateTaxAmount che prenda price e taxRate dalla funzione esterna calculateWithTax, calcoli l'importo dell'imposta e lo restituisca. (L'importo dell'imposta è il prezzo moltiplicato per l'aliquota fiscale)
Infine, la funzione esterna dovrebbe calcolare e restituire il prezzo finale (imposta inclusa) sommando l'importo dell'imposta al prezzo originale e restituire il prezzo finale.
Provalo tu
function calculateWithTax(product) {
let price = product.price;
let taxRate = product.taxRate;
// scrivi il codice qui
}
Tutte le lezioni di Dichiarazioni di funzione in JavaScript
1Introduzione al corso
Cosa imparerai?2Introduzione alle funzioni
Che cos'è una funzione?Funzioni pureEsercizio sulle funzioni n. 1Esercizio sulle funzioni n. 23Modalità di dichiarazione delle funzioni
Funzione di baseFunzione annidataRestituire una funzioneEspressioni di funzioneFunzione frecciaCostruttore di funzioniEsercitati da solo: Compilatore JavaScript online