JavaScriptda Funktsiyalarni Parametr sifatida O‘tkazish

Funktsiyalar, sonlar, satrlar va massivlar singari, boshqa funktsiyalarga parametr sifatida o‘tkazilishi mumkin.

Buni amaliy misolda batafsil ko‘rib chiqaylik. Faraz qilaylik, bizda ikkita parametr qabul qiladigan test funktsiyasi mavjud:

javascripttest(parametr1, parametr2);

Keling, test funktsiyasining birinchi parametriga 1ni qaytaradigan anonim funktsiyani, ikkinchi parametriga esa 2ni qaytaradigan anonim funktsiyani o‘tkazamiz:

javascripttest(
  function() {return 1;},
  function() {return 2;}
);

Yuqoridagi kod hali ishlamaydi, chunki biz funktsiyaning o‘zini yaratmadik. Buni amalga oshiramiz:

javascriptfunction test(func1, func2) {
  
}

Funktsiyani aniqlashda biz ikkita parametrni ko‘rsatdik - func1 va func2. Ushbu parametrlar ularga nima o‘tkazilishidan bexabar. Masalan, raqamlarni o‘tkazishimiz mumkin:

javascripttest(1, 2); // funktsiyani chaqiramiz

function test(func1, func2) {
  console.log(func1); // 1 ni chiqaradi
  console.log(func2); // 2 ni chiqaradi
}

Yoki funktsiyalarni o‘tkazishimiz mumkin:

javascripttest(
  function() {return 1;}, // birinchi parametr
  function() {return 2;}  // ikkinchi parametr
);

function test(func1, func2) {
  console.log(func1); // 'function() {return 1;}' ni chiqaradi
  console.log(func2); // 'function() {return 2;}' ni chiqaradi
}

Ko‘rib turganingizdek, endi konsolga funktsiyalarning dastlabki kodi chiqariladi. Keling, ularning natijalarini chiqarishini ta'minlaylik. Buning uchun funktsiyalarga dumaloq qavslar qo‘shamiz:

javascripttest(
  function() {return 1;},
  function() {return 2;}
);

function test(func1, func2) {
  console.log( func1() ); // 1 ni chiqaradi
  console.log( func2() ); // 2 ni chiqaradi
}

Keling, birinchi va ikkinchi funktsiyalar natijalari yig‘indisini konsolga chiqaramiz:

javascripttest(
  function() {return 1;},
  function() {return 2;}
);

function test(func1, func2) {
  console.log( func1() + func2() ); // 3 ni chiqaradi
}
Задание 1

test funktsiyasini yarating, uning parametrlari sifatida 3 ta funktsiya qabul qilinsin. Unga birinchi parametr sifatida 1ni qaytaradigan funktsiyani, ikkinchisi - 2ni qaytaradigan funktsiyani, uchinchisi - 3ni qaytaradigan funktsiyani o‘tkazing. Konsolga funktsiyalar natijalari yig‘indisini chiqaring.