Paso de funciones como parámetros en JavaScript

Las funciones, al igual que los números, las cadenas y los arreglos, pueden pasarse como parámetros a otras funciones.

Consideremos esto más detenidamente con un ejemplo práctico. Supongamos que tenemos una función test que acepta dos parámetros:

javascripttest(parámetro1, parámetro2);

Pasemos al primer parámetro de la función test una función anónima que devuelva 1, y al segundo parámetro - una función anónima que devuelva 2:

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

El código anterior aún no funciona, ya que no hemos creado la función misma. Hagámoslo:

javascriptfunction test(func1, func2) {
  
}

Al definir la función, especificamos dos parámetros - func1 y func2. Estos parámetros no saben nada sobre lo que se les pasará. Podemos, por ejemplo, pasar números:

javascripttest(1, 2); // llamamos a la función

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

O podemos pasar funciones:

javascripttest(
  function() {return 1;}, // primer parámetro
  function() {return 2;}  // segundo parámetro
);

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

Como puede ver, ahora la consola muestra el código fuente de las funciones. Hagamos que muestre sus resultados. Para ello, agreguemos paréntesis a las funciones:

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

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

Mostremos en la consola la suma de los resultados de la primera y la segunda función:

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

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

Cree una función test que acepte 3 funciones como parámetros. Pase a ella como primer parámetro una función que devuelva 1, como segundo - una función que devuelva 2, como tercero - una función que devuelva 3. Muestre en la consola la suma de los resultados de las funciones.