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:

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

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

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 zavolání square zvenčí func povede k chybě:

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

console.log(square(2)); //!! vypíše chybu
Задание 1

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í.