JavaScriptda Funktsiya Qaytaruvchi Funktsiya

Faraz qilaylik, bizda matn qaytaruvchi quyidagi funktsiya mavjud:

javascriptfunction func() {
  return '!';
}

let result = func();
console.log(result); // '!' ni chiqaradi

Keling, endi matn o'rniga, o'xshash tarzda, anonim funktsiyani qaytaraylik:

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

let result = func(); // result o'zgaruvchisida funktsiya bo'ladi
console.log(result); // 'function() {return '!';}' ni chiqaradi

Ko'rib turganingizdek, result o'zgaruvchisi endi funktsiyani ifodalaydi. Keling, uning ishlash natijasini konsolga chiqaraylik. Buning uchun unga qavslar qo'yamiz:

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

let result = func();
console.log( result() ); // '!' ni chiqaradi

func() chaqiruvi funktsiyani qaytargani sababli, biz qaytarilgan funktsiyani darhol chaqirishimiz mumkin, mana bu tarzda: func()() - birinchi qavslar func funktsiyasining natijasini oladi (o'zi funktsiya bo'lgan), ikkinchi qavslar esa func natijasiga qo'llaniladi.

Keling, sinab ko'raylik:

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

console.log( func()() ); // '!' ni chiqaradi
Задание 1

func1 funktsiyasini yarating, u shunday chaqirilganda: func1()(), 1 sonini qaytarsin. 2 sonini qaytaruvchi o'xshash func2 funktsiyasini yarating. Ushbu funktsiyalar natijalari yig'indisini toping.