Kazi Zilizojumuishwa ndani ya Kazi nyingine kwa JavaScript

Tuchukulie tuna kazi inayokubali nambari mbili kama vigezo na kurudisha jumla ya miraba ya nambari hizo:

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

console.log(func(2, 3)); // inatoa 13 (matokeo ya 2 * 2 + 3 * 3)

Wacha tuondoe operesheni ya kuinua kwa mraba na tuiweke kwenye kazi ya msaidizi square:

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

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

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

Tuchukulie tuna hakika kwamba kazi square itatumika tu ndani ya kazi func na hakuna penginepo.

Kwa hali hii ingekuwa rahisi kufanya hivi, ili hakuna mtu anayeweza kuitumia kwa bahati mbaya (wewe mwenyewe au programu mwingine anayefanya kazi pamoja nawe).

Kwa JavaScript kuna suluhisho zuri: inawezekana kuweka kazi yetu ya msaidizi square ndani ya func. Katika kesi hii kazi yetu ya msaidizi itakuwa inapatikana tu ndani ya func, na nje - haitakuwa inapatikana.

Tufanye hivi:

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

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

Jaribio la kuita square nje ya func litasababisha hitilafu:

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

console.log(square(2)); //!! itotoa hitilafu
Задание 1

Tengeneza kazi func, ambayo kwa vigezo itakubali nambari mbili, na kurudisha jumla ya mraba wa nambari ya kwanza na mchemraba wa nambari ya pili. Fanya kwa hili kazi ya msaidizi square, inayoinua nambari kwa mraba, na kazi ya msaidizi cube, inayoinua nambari kwa mchemraba.