Vnorené funkcie v JavaScripte
Majme funkciu, ktorá ako parameter prijíma dve čísla a vracia súčet druhých mocnín týchto čísel:
function func(num1, num2) {
return num1 * num1 + num2 * num2;
}
console.log(func(2, 3)); // vypíše 13 (výsledok 2 * 2 + 3 * 3)
Operáciu umocnenia na druhú presuňme
do pomocnej funkcie square:
function square(num) {
return num * num;
}
function func(num1, num2) {
return square(num1) + square(num2);
}
console.log(func(2, 3)); // vypíše 13
Predpokladajme, že funkcia square
sa bude používať len vo funkcii func
a nikde inde.
V tomto prípade by bolo vhodné zaistiť, aby ju nikto omylom nepoužil (vy alebo iný programátor pracujúci s vami).
JavaScript má elegantné riešenie: našu
pomocnú funkciu square môžeme
umiestniť dovnútra func. V takom prípade
bude naša pomocná funkcia dostupná
len vnútri func, ale zvonku - nebude.
Urobme to:
function func(num1, num2) {
function square(num) {
return num * num;
}
return square(num1) + square(num2);
}
console.log(func(2, 3)); // vypíše 13
Pokus o zavolanie square zvonku func
spôsobí chybu:
function func(num1, num2) {
function square(num) {
return num * num;
}
return square(num1) + square(num2);
}
console.log(square(2)); //!! spôsobí chybu
Vytvorte funkciu func, ktorá parametrami
bude prijímať dve čísla a vráti súčet
druhej mocniny prvého čísla s treťou mocninou druhého čísla.
Vytvorte na to pomocnú funkciu
square, ktorá umocní číslo na druhú,
a pomocnú funkciu cube, ktorá umocní
číslo na tretiu.