JavaScript-də Funksiyanı Qaytaran Funksiya

Tutaq ki, bizdə sətri qaytaran belə bir funksiya var:

javascriptfunction func() {
  return '!';
}

let result = func();
console.log(result); // '!' çap edəcək

İndi isə, oxşar şəkildə, sətir əvəzinə anonim funksiya qaytaraq:

javascriptfunction func() {
  return function() {
    return '!';
  };
}

let result = func(); // result dəyişənində funksiya olacaq
console.log(result); // 'function() {return '!';}' çap edəcək

Gördüyünüz kimi, result dəyişəni indi bir funksiyadır. Gəlin onun nəticəsini konsole çap edək. Bunun üçün ona dəyirmi mötərizələr yazaq:

javascriptfunction func() {
  return function() {
    return '!';
  };
}

let result = func();
console.log( result() ); // '!' çap edəcək

func() çağırışı funksiya qaytardığı üçün, biz bu qaytarılan funksiyani dərhal çağıra bilərik, belə: func()() - birinci dəyirmi mötərizələr func funksiyasının nəticəsini (özü də funksiya olan) alır, ikinci dəyirmi mötərizələr isə func-ın nəticəsinə tətbiq olunur.

Gəlin yoxlayaq:

javascriptfunction func() {
  return function() {
    return '!';
  };
}

console.log( func()() ); // '!' çap edəcək
Задание 1

func1 funksiyasını elə düzəldin ki, belə çağırıldıqda: func1()(), 1 rəqəmini qaytarsın. func2 üçün də oxşar funksiya düzəldin, 2 rəqəmini qaytarsın. Bu funksiyaların nəticələrinin cəmini tapın.