Угњежђене функције у 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, која диже
број на куб.