Fonctions imbriquées en JavaScript
Supposons que nous ayons une fonction prenant en paramètre deux nombres et renvoyant la somme des carrés de ces nombres :
function func(num1, num2) {
return num1 * num1 + num2 * num2;
}
console.log(func(2, 3)); // affichera 13 (résultat de 2 * 2 + 3 * 3)
Sortons l'opération d'élévation au carré
dans une fonction auxiliaire square :
function square(num) {
return num * num;
}
function func(num1, num2) {
return square(num1) + square(num2);
}
console.log(func(2, 3)); // affichera 13
Supposons que nous soyons sûrs que la fonction square
ne sera utilisée que dans la fonction func
et nulle part ailleurs.
Dans ce cas, il serait pratique de faire en sorte que personne ne l'utilise accidentellement (vous-même ou un autre programmeur travaillant avec vous).
JavaScript a une solution élégante : on peut
placer notre fonction auxiliaire square
à l'intérieur de func. Dans ce cas,
notre fonction auxiliaire ne sera accessible
qu'à l'intérieur de func, et pas de l'extérieur.
Faisons cela :
function func(num1, num2) {
function square(num) {
return num * num;
}
return square(num1) + square(num2);
}
console.log(func(2, 3)); // affichera 13
Toute tentative d'appeler square en dehors de func
entraînera une erreur :
function func(num1, num2) {
function square(num) {
return num * num;
}
return square(num1) + square(num2);
}
console.log(square(2)); //!! générera une erreur
Créez une fonction func qui prendra en paramètres
deux nombres, et renverra la somme du
carré du premier nombre et du cube du deuxième nombre.
Pour cela, créez une fonction auxiliaire
square, élevant un nombre au carré,
et une fonction auxiliaire cube, élevant
un nombre au cube.