JavaScript-də İç-içə Funksiyalar

Tutaq ki, bizim iki ədəd parametr qəbul edən və onların kvadratlarının cəmini qaytaran bir funksiyamız var:

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

console.log(func(2, 3)); // 13 çap edəcək (2 * 2 + 3 * 3 nəticəsi)

Gəlin kvadratə çıxarma əməliyyatını köməkçi square funksiyasına çıxaraq:

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

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

console.log(func(2, 3)); // 13 çap edəcək

Tutaq ki, biz əminik ki, square funksiyası yalnız func funksiyasında istifadə olunacaq və heç bir başqa yerdə istifadə olunmayacaq.

Bu halda, onun təsadüfən heç kəs tərəfindən istifadə olunmamasını (özünüz və ya sizinlə birlikdə işləyən başqa bir proqramçı) təmin etmək rahat olardı.

JavaScript-də zərif bir həll var: biz köməkçi square funksiyamızı func-nin içərisinə yerləşdirə bilərik. Bu halda, bizim köməkçi funksiyamız yalnız func-nin daxilində əlçatan olacaq, xaricdə isə olmayacaq.

Gəlin bunu edək:

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

console.log(func(2, 3)); // 13 çap edəcək

square funksiyasını func-nin xaricində çağırmaq cəhdi səhvə səbəb olacaq:

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

console.log(square(2)); //!! səhv verəcək
Задание 1

func funksiyası düzəldin, parametr olaraq iki ədəd qəbul etsin və birinci ədədin kvadratı ilə ikinci ədədin kubunun cəmini qaytarsın. Bunun üçün ədədi kvadratə çıxaran köməkçi square funksiyasını və ədədi kuba çıxaran köməkçi cube funksiyasını düzəldin.