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:

javascriptfunction 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:

javascriptfunction 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:

javascriptfunction 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:

javascriptfunction func(num1, num2) {
  function square(num) {
    return num * num;
  }
  
  return square(num1) + square(num2);
}

console.log(square(2)); //!! izvadīs kļūdu
Задание 1

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ā.