Geneste functies in JavaScript

Stel we hebben een functie die twee getallen als parameter accepteert en de som van de kwadraten van deze getallen teruggeeft:

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

console.log(func(2, 3)); // geeft 13 weer (resultaat van 2 * 2 + 3 * 3)

Laten we de bewerking van kwadrateren uitsluiten in een hulpfunctie square:

javascriptfunction square(num) {
  return num * num;
}

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

console.log(func(2, 3)); // geeft 13 weer

Stel we zijn er zeker van dat de functie square alleen in de functie func gebruikt zal worden en nergens anders.

In dat geval zou het handig zijn om te zorgen dat niemand haar per ongeluk gebruikt (jij zelf of een andere programmeur die samen met jou werkt).

In JavaScript is er een elegante oplossing: we kunnen onze hulpfunctie square in func plaatsen. In dit geval zal onze hulpfunctie alleen beschikbaar zijn binnenin func, en van buitenaf - niet.

Laten we dit doen:

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

console.log(func(2, 3)); // geeft 13 weer

Een poging om square van buitenaf func aan te roepen zal leiden tot een fout:

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

console.log(square(2)); //!! geeft een foutmelding
Задание 1

Maak een functie func die als parameters twee getallen accepteert, en de som van het kwadraat van het eerste getal met de derde macht van het tweede getal teruggeeft. Maak hiervoor een hulpfunctie square, die een getal kwadrateert, en een hulpfunctie cube, die een getal tot de derde macht verheft.