JavaScript-те функцияларды параметр ретінде беру

Функциялар, сандар, жолдар және массивтер сияқты, басқа функцияларға параметр ретінде берілуі мүмкін.

Практикалық мысалда толығырақ қарастырайық. Бізде екі параметр қабылдайтын test функциясы бар делік:

javascripttest(параметр1, параметр2);

test функциясының бірінші параметріне 1 мәнін қайтаратын анонимдік функцияны, ал екінші параметріне - 2 мәнін қайтаратын анонимдік функцияны берейік:

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

Жоғарыда келтірілген код әлі жұмыс істемейді, себебі біз функцияның өзін жасаған жоқпыз. Мұны жасайық:

javascriptfunction test(func1, func2) {
  
}

Функцияны анықтаған кезде біз екі параметр көрсеттік - func1 және func2. Бұл параметрлер оларға не берілетіні туралы ештеңе білмейді. Мысалы, сандарды бере аламыз:

javascripttest(1, 2); // функцияны шақырамыз

function test(func1, func2) {
  console.log(func1); // 1 шығарады
  console.log(func2); // 2 шығарады
}

Немесе функцияларды бере аламыз:

javascripttest(
  function() {return 1;}, // бірінші параметр
  function() {return 2;}  // екінші параметр
);

function test(func1, func2) {
  console.log(func1); // 'function() {return 1;}' шығарады
  console.log(func2); // 'function() {return 2;}' шығарады
}

Көріп отырғаныңыздай, енді консольге функциялардың бастапқы коды шығады. Олардың нәтижелерін шығаратындай етейік. Ол үшін функцияларға дөңгелек жақшалар жазайық:

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

function test(func1, func2) {
  console.log( func1() ); // 1 шығарады
  console.log( func2() ); // 2 шығарады
}

Консольге бірінші және екінші функция нәтижелерінің қосындысын шығарайық:

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

function test(func1, func2) {
  console.log( func1() + func2() ); // 3 шығарады
}
Задание 1

test функциясын жасаңыз, ол параметр ретінде 3 функцияны қабылдайды. Оған бірінші параметр ретінде 1 мәнін қайтаратын функцияны, екінші ретінде - 2 мәнін қайтаратын функцияны, үшінші ретінде - 3 мәнін қайтаратын функцияны беріңіз. Консольге функция нәтижелерінің қосындысын шығарыңыз.