Funkcijų perdavimas parametrais JavaScript

Funkcijos, panašiai kaip skaičiai, eilutės ir masyvai, gali būti perduodamos parametrais į kitas funkcijas.

Pažvelkime atidžiau į praktinį pavyzdį. Tarkime, kad turime funkciją test, kuri priima du parametrus:

javascripttest(parametras1, parametras2);

Pirmąjį funkcijos test parametrą perduokime anoniminę funkciją, grąžinančią 1, o antrają parametrą - anoniminę funkciją, grąžinančią 2:

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

Aukščiau pateiktas kodas kol kas neveikia, nes mes nesukūrėme pačios funkcijos. Sukurkime ją:

javascriptfunction test(func1, func2) {
  
}

Apibrėždami funkciją nurodėme du parametrus - func1 ir func2. Šie parametrai nieko nežino apie tai, kas į juos bus perduodama. Galime, pavyzdžiui, perduoti skaičius:

javascripttest(1, 2); // iškviečiame funkciją

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

O galime perduoti funkcijas:

javascripttest(
  function() {return 1;}, // pirmasis parametras
  function() {return 2;}  // antrasis parametras
);

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

Kaip matote, dabar į konsolę išvedamas pradinis funkcijų kodas. Padarykime taip, kad jis išvestų jų rezultatus. Tam parašykime prie funkcijų apvalius skliaustus:

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

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

Išveskime į konsolę pirmos ir antros funkcijos rezultatų sumą:

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

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

Sukurkite funkciją test, parametrais priimančią 3 funkcijas. Perduokite į ją pirmuoju parametru funkciją, grąžinančią 1, antruoju - funkciją, grąžinančią 2, trečiuoju - funkciją, grąžinančią 3. Išveskite į konsolę funkcijų rezultatų sumą.