JavaScriptда функция қайтарадиган функция

Фараз қилайлик, бизда мана бу каби сатрни қайтарадиган функция бор:

javascriptfunction func() {
  return '!';
}

let result = func();
console.log(result); // '!' чиқади

Энди ўхшаш тарзда, сатр ўрнига, номсиз функцияни қайтарамиз:

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

let result = func(); // result ўзгарувчисида функция бўлади
console.log(result); // function() {return '!';} чиқади

Кўриб турганингиздек, result ўзгарувчиси энди функцияни ифодалайди. Кeling, унинг ишлаши натижасини консолга чиқарайлик. Бунинг учун унга айлана скобкалар ёзамиз:

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

let result = func();
console.log( result() ); // '!' чиқади

func() чақируви функцияни қайтаргани сабабли, биз қайтарилган функцияни darhol chaqirishimiz mumkin, мана бу курнида: func()() - биринчи айлана скобкалар func функциясининг натижасини олади (у ўзи функция бўлган), иккинчи айлана скобкалар эса func натижасига қўлланилади.

Келиб, синаб кўрамиз:

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

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

func1 функциясини яратинг, у шундай чақирилганда: func1()(), 1 sonini қайтарсин. Шунингдек, 2 sonini қайтарадиган func2 функциясини яратинг. Бу функциялар натижалари йиғиндисини топинг.