Перадача функцый параметрамі ў 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. Выведзіце ў кансоль суму вынікаў функцый.