Функсияҳои дохилӣ дар JavaScript
Бигзор мо функсияе дорем, ки ду ададро қабул мекунад ва ҷамъи квадратҳои ин ададҳоро бармегардонад:
function func(num1, num2) {
return num1 * num1 + num2 * num2;
}
console.log(func(2, 3)); // 13-ро бармегардонад (натиҷаи 2 * 2 + 3 * 3)
Биёед амали ба квадрат бардоштанро ба
функсияи кӯмакӣ square ҷудо кунем:
function 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 дастрас хоҳад буд,
ва аз берун - дастрас нахоҳад буд.
Биёед ин корро анҷом диҳем:
function func(num1, num2) {
function square(num) {
return num * num;
}
return square(num1) + square(num2);
}
console.log(func(2, 3)); // 13-ро бармегардонад
Кӯшиши даъват кардани square аз беруни func
ба хато меорад:
function func(num1, num2) {
function square(num) {
return num * num;
}
return square(num1) + square(num2);
}
console.log(square(2)); //!! хато медиҳад
Функсияи func-ро созед, ки параметрҳояш
ду адад қабул мекунанд, ва ҷамъи
квадрати адади якумро бо куби адади дуюм бармегардонад.
Барои ин функсияи кӯмакии
square-ро созед, ки ададро ба квадрат мебарорад,
ва функсияи кӯмакии cube-ро созед, ки ададро
ба куб мебарорад.