Funksionet e mbivendosur në JavaScript

Le të supozojmë se kemi një funksion që pranon dy numra si parametra dhe kthen shumën e katrorëve të këtyre numrave:

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

console.log(func(2, 3)); // shfaq 13 (rezultat 2 * 2 + 3 * 3)

Le ta veçojmë operacionin e ngritjes në katror në një funksion ndihmës square:

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

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

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

Le të supozojmë se jemi të sigurt se funksioni square do të përdoret vetëm brenda funksionit func dhe askund tjetër.

Në këtë rast do të ishte e përshtatshme të bëhej në mënyrë të tillë që askush të mos e përdorte aksidentalisht (ju vetë ose një programues tjetër që punon së bashku me ju).

JavaScript ka një zgjidhje elegante: mund ta vendosim funksionin tonë ndihmës square brenda func. Në këtë rast funksioni ynë ndihmës do të jetë i disponueshëm vetëm brenda func, dhe jashtë - jo.

Le ta bëjmë këtë:

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

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

Përpjekja për të thirrur square nga jashtë func do të rezultojë në një gabim:

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

console.log(square(2)); //!! do të japë një gabim
Задание 1

Krijoni një funksion func që do të marrë si parametra dy numra dhe do të kthejë shumën e katrorit të numrit të parë me kubin e numrit të dytë. Bëni për këtë një funksion ndihmës square, që e ngrit numrin në katror, dhe një funksion ndihmës cube, që e ngrit numrin në kub.