Iegultās funkcijas JavaScript
Pieņemsim, ka mums ir funkcija, kas parametru veidā pieņem divus skaitļus un atgriež šo skaitļu kvadrātu summu:
function func(num1, num2) {
return num1 * num1 + num2 * num2;
}
console.log(func(2, 3)); // izvadīs 13 (rezultāts 2 * 2 + 3 * 3)
Izņemsim kvadrātā kāpināšanas operāciju
palīgfunkcijā square:
function square(num) {
return num * num;
}
function func(num1, num2) {
return square(num1) + square(num2);
}
console.log(func(2, 3)); // izvadīs 13
Pieņemsim, ka esam pārliecināti, ka funkcija square
tiks izmantota tikai funkcijā func
un nekur citur.
Šajā gadījumā būtu ērti izdarīt tā, lai to nejauši neviens neizmantotu (jūs paši vai cits programmētājs, kas strādā kopā ar jums).
JavaScript ir elegantisks risinājums: mēs varam
ievietot mūsu palīgfunkciju square
func iekšpusē. Šajā gadījumā
mūsu palīgfunkcija būs pieejama
tikai func iekšienē, bet ārpus tās - nebūs.
Izdarīsim to:
function func(num1, num2) {
function square(num) {
return num * num;
}
return square(num1) + square(num2);
}
console.log(func(2, 3)); // izvadīs 13
Mēģinājums izsaukt square ārpus func
izraisīs kļūdu:
function func(num1, num2) {
function square(num) {
return num * num;
}
return square(num1) + square(num2);
}
console.log(square(2)); //!! izvadīs kļūdu
Izveidojiet funkciju func, kas parametros
pieņems divus skaitļus, un atgriezīs pirmā skaitļa kvadrāta
summu ar otrā skaitļa kubu.
Izveidojiet tam palīgfunkciju
square, kas kāpina skaitli kvadrātā,
un palīgfunkciju cube, kas kāpina
skaitli kubā.