Fungsi Bersarang dalam JavaScript

Katakan kita mempunyai fungsi yang menerima dua nombor sebagai parameter dan mengembalikan hasil tambah kuasa dua nombor-nombor tersebut:

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

console.log(func(2, 3)); // akan memaparkan 13 (hasil 2 * 2 + 3 * 3)

Mari kita asingkan operasi kuasa dua kepada fungsi pembantu square:

javascriptfunction square(num) {
  return num * num;
}

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

console.log(func(2, 3)); // akan memaparkan 13

Katakan kita yakin bahawa fungsi square hanya akan digunakan dalam fungsi func dan tidak di mana-mana lagi.

Dalam kes ini, adalah lebih mudah untuk memastikan tiada orang yang secara tidak sengaja menggunakannya (anda sendiri atau pengaturcara lain yang bekerja bersama anda).

JavaScript mempunyai penyelesaian yang elegan: kita boleh meletakkan fungsi pembantu square ke dalam func. Dalam kes ini, fungsi pembantu kita hanya boleh diakses dalam func, tetapi tidak dari luar.

Mari lakukan ini:

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

console.log(func(2, 3)); // akan memaparkan 13

Cubaan untuk memanggil square dari luar func akan menyebabkan ralat:

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

console.log(square(2)); //!! akan memberikan ralat
Задание 1

Buat fungsi func yang parameternya akan menerima dua nombor, dan mengembalikan hasil tambah kuasa dua nombor pertama dengan kuasa tiga nombor kedua. Buat untuk ini fungsi pembantu square, yang memangkatkan nombor kuasa dua, dan fungsi pembantu cube, yang memangkatkan nombor kuasa tiga.