Функсияҳои дохилӣ дар JavaScript

Бигзор мо функсияе дорем, ки ду ададро қабул мекунад ва ҷамъи квадратҳои ин ададҳоро бармегардонад:

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

console.log(func(2, 3)); // 13-ро бармегардонад (натиҷаи 2 * 2 + 3 * 3)

Биёед амали ба квадрат бардоштанро ба функсияи кӯмакӣ square ҷудо кунем:

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

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

console.log(func(2, 3)); // 13-ро бармегардонад

Фарз кунем, ки мо боварӣ дорем, ки функсияи square танҳо дар функсияи func истифода мешавад ва дигар ҳеҷ ҷо истифода намешавад.

Дар ин ҳолат, мувофиқ мебуд, ки ҳеҷ кас тасодуфан онро истифода накунад (худ шумо ё дигар барномасозе, ки бо шумо кор мекунад).

Дар JavaScript ҳалли зебо мавҷуд аст: мо метавонем функсияи кӯмакии худ square-ро ба дохили func ҷойгир кунем. Дар ин ҳолат функсияи кӯмакии мо танҳо дар дохили func дастрас хоҳад буд, ва аз берун - дастрас нахоҳад буд.

Биёед ин корро анҷом диҳем:

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

console.log(func(2, 3)); // 13-ро бармегардонад

Кӯшиши даъват кардани square аз беруни func ба хато меорад:

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

console.log(square(2)); //!! хато медиҳад
Задание 1

Функсияи func-ро созед, ки параметрҳояш ду адад қабул мекунанд, ва ҷамъи квадрати адади якумро бо куби адади дуюм бармегардонад. Барои ин функсияи кӯмакии square-ро созед, ки ададро ба квадрат мебарорад, ва функсияи кӯмакии cube-ро созед, ки ададро ба куб мебарорад.