Vnorené funkcie v JavaScripte

Majme funkciu, ktorá ako parameter prijíma dve čísla a vracia súčet druhých mocnín týchto čísel:

javascriptfunction 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:

javascriptfunction 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:

javascriptfunction 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:

javascriptfunction func(num1, num2) {
  function square(num) {
    return num * num;
  }
  
  return square(num1) + square(num2);
}

console.log(square(2)); //!! spôsobí chybu
Задание 1

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.