Kazi Zilizojumuishwa ndani ya Kazi nyingine kwa JavaScript
Tuchukulie tuna kazi inayokubali nambari mbili kama vigezo na kurudisha jumla ya miraba ya nambari hizo:
function 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:
function 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:
function 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:
function func(num1, num2) {
function square(num) {
return num * num;
}
return square(num1) + square(num2);
}
console.log(square(2)); //!! itotoa hitilafu
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.