Укладзеныя функцыі ў 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, якая ўзводзіць
лік у куб.