Menu
Coddy logo textTech

Fonction imbriquée

Leçon 7 sur 14 du cours Déclarations de fonctions en JavaScript de Coddy.

Les fonctions imbriquées sont comme des super-héros avec des acolytes – ce sont des fonctions puissantes qui peuvent créer et utiliser d'autres fonctions en leur sein.

Une fonction imbriquée est une fonction définie à l'intérieur d'une autre fonction. La fonction interne a accès aux variables et aux paramètres de la fonction externe, créant ainsi une portée locale au sein de la fonction externe.

Imaginez que vous ayez une fonction principale (le super-héros) qui a besoin d'aide pour une tâche spécifique. Au lieu de s'appuyer sur une fonction externe, elle peut créer une fonction d'aide (l'acolyte) en son sein pour gérer cette tâche spécifique. Cette fonction d'aide ne peut être consultée et utilisée que par la fonction principale. Par exemple :

function calculateDiscount(originalPrice, discountPercentage) {
  	function calculateDiscountAmount(price, discount) {
    	return price * discount; // Calculer le montant de la remise (fonction interne)
  	}

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

const discountedPrice = calculateDiscount(100, 20);
console.log(discountedPrice); // Sortie : 80
  • Fonction externe :
    • Nous définissons une fonction nommée calculateDiscount qui prend deux arguments : originalPrice et discountPercentage.
  • Fonction interne :
    • À l'intérieur de la fonction externe, nous définissons une autre fonction nommée calculateDiscountAmount. C'est la fonction imbriquée. Elle prend deux arguments : price et discount (remarquez qu'elle n'a pas accès directement à originalPrice ou discountPercentage).
  • Sortie : La fonction renvoie le prix final, qui est 80 (après application de la remise de 20 %).
challenge icon

Défi

Facile

Votre tâche consiste à créer une fonction imbriquée nommée calculateTaxAmount qui doit prendre le price et le taxRate de la fonction externe calculateWithTax, calculer le montant de la taxe et le retourner. (Le montant de la taxe est le prix multiplié par le taux de taxe)

Enfin, la fonction externe doit calculer et retourner le prix final (incluant la taxe) en ajoutant le montant de la taxe au prix d'origine et retourner le prix final.

Essayez vous-même

function calculateWithTax(product) {
    let price = product.price;
    let taxRate = product.taxRate;
   // écrire le code ici
}

Toutes les leçons de Déclarations de fonctions en JavaScript