Geneste funksies in JavaScript

Gestel ons het 'n funksie wat twee getalle as parameter aanvaar en die som van die vierkante van daardie getalle teruggee:

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

console.log(func(2, 3)); // sal 13 vertoon (resultaat 2 * 2 + 3 * 3)

Kom ons skuif die bewerking van kwadratering na 'n hulpfunksie square:

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

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

console.log(func(2, 3)); // sal 13 vertoon

Gestel ons is seker dat die funksie square slegs in die funksie func gebruik sal word en nêrens anders nie.

In hierdie geval sou dit gerieflik wees om te maak dat niemand dit per ongeluk gebruik nie (jy self of 'n ander programeerder wat saam met jou werk).

JavaScript het 'n elegante oplossing: ons kan ons hulpfunksie square binne-in func plaas. In hierdie geval sal ons hulpfunksie slegs beskikbaar wees binne func, en van buite af - nie.

Kom ons doen dit:

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

console.log(func(2, 3)); // sal 13 vertoon

'n Poging om square van buite func te roep sal tot 'n fout lei:

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

console.log(square(2)); //!! sal 'n fout gee
Задание 1

Maak 'n funksie func wat twee getalle as parameters sal aanvaar, en die som van die vierkant van die eerste getal met die derdemag van die tweede getal sal teruggee. Maak vir hierdie doel 'n hulpfunksie square, wat 'n getal kwadreer, en 'n hulpfunksie cube, wat 'n getal tot die derdemag verhef.