Passing functions as parameters in JavaScript

Functions, like numbers, strings, and arrays, can be passed as parameters to other functions.

Let's take a closer look at a practical example. Let's say we have the function test that takes two parameters:

javascripttest(parameter1, parameter2);

Let's pass an anonymous function that returns 1 to the first parameter of the test function, and an anonymous function that returns 2 to the second parameter:

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

The code above is not working yet because we haven't created the function itself. Let's do it:

javascriptfunction test(func1, func2) {
  
}

When defining the function, we specified two parameters - func1 and func2. These parameters don't know anything about what will be transmitted in them. We can, for example, pass numbers:

javascripttest(1, 2); // call the function

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

ALso we can pass the functions:

javascripttest(
  function() {return 1;}, // first parameter
  function() {return 2;}  // second parameter
);

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

As you can see, the source code of the functions is now printed to the console. Let's make it output their results. To do this, we write parentheses to the functions:

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

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

Let's print the sum of the results of the first and second function to the console:

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

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

Make the function test that takes 3 functions as parameters. Pass in the first parameter a function that returns 1, the second - a function that returns 2, the third - a function that returns 3. Print the sum of the results of the functions to the console.