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 ичига joylashtirishimiz мумкин. Бунда
ёрдамчи функция фақат 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)); //!! хатолик берadi
func функциясини ясанг, у параметр сифатида
иккита сонни қабул қилсин, биринчи соннинг квадрати
иккинчи соннинг куби билан йиғиндисини қайтарсин.
Бунинг учун сонни квадратга оширадиган square
ёрдамчи функцияси ва сонни кубга оширадиган
cube ёрдамчи функциясини ясанг.