Вгнездени функции во 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 која како параметри
ќе прима два броја, а ќе враќа сума
од квадратот на првиот број со kubot на вториот број.
Направете за ова помошна функција
square, која подига број на квадрат,
и помошна функција cube, која подига
број на kub.