Vnořené funkce v JavaScriptu
Předpokládejme, že máme funkci, která přijímá jako parametry dvě čísla a vrací součet druhých mocnin těchto čísel:
function func(num1, num2) {
return num1 * num1 + num2 * num2;
}
console.log(func(2, 3)); // vypíše 13 (výsledek 2 * 2 + 3 * 3)
Operaci umocňování na druhou vypíšeme
do pomocné funkce square:
function square(num) {
return num * num;
}
function func(num1, num2) {
return square(num1) + square(num2);
}
console.log(func(2, 3)); // vypíše 13
Předpokládejme, že jsme si jisti, že funkce square
bude použita pouze ve funkci func
a nikde jinde.
V tomto případě by bylo výhodné zařídit, aby ji nikdo náhodně nepoužil (vy sami nebo jiný programátor, pracující společně s vámi).
V JavaScriptu existuje elegantní řešení: naši
pomocnou funkci square je možné
umístit dovnitř func. V tomto případě
bude naše pomocná funkce dostupná
pouze uvnitř func, a zvenčí - nikoliv.
Pojďme na 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 zavolání square zvenčí func
povede k chybě:
function func(num1, num2) {
function square(num) {
return num * num;
}
return square(num1) + square(num2);
}
console.log(square(2)); //!! vypíše chybu
Vytvořte funkci func, která parametry
bude přijímat dvě čísla, a vracet součet
druhé mocniny prvního čísla s třetí mocninou druhého čísla.
Vytvořte k tomu pomocnou funkci
square, umocňující číslo na druhou,
a pomocnou funkci cube, umocňující
číslo na třetí.