Kalimi i funksioneve si parametra në JavaScript

Funksionet, ngjashëm me numrat, vargjet dhe array-t, mund të kalohen si parametra në funksione të tjera.

Le ta shqyrtojmë më në hollë me një shembull praktik. Le të themi se kemi një funksion test që pranon dy parametra:

javascripttest(parametri1, parametri2);

Le të kalojmë në parametrin e parë të funksionit test një funksion anonim që kthen 1, dhe në parametrin e dytë - një funksion anonim që kthen 2:

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

Kodi i dhënë më sipër ende nuk funksionon, pasi ne nuk e kemi krijuar vetë funksionin. Le ta krijojmë:

javascriptfunction test(func1, func2) {
  
}

Gjatë përcaktimit të funksionit, ne kemi përcaktuar dy parametra - func1 dhe func2. Këta parametra nuk dinë asgjë nëse diçka do t'u kalohet atyre. Mund të kemi, për shembull, kaluar numra:

javascripttest(1, 2); // therrasim funksionin

function test(func1, func2) {
  console.log(func1); // do të shfaqë 1
  console.log(func2); // do të shfaqë 2
}

Por mund të kemi kaluar funksione:

javascripttest(
  function() {return 1;}, // parametri i parë
  function() {return 2;}  // parametri i dytë
);

function test(func1, func2) {
  console.log(func1); // do të shfaqë 'function() {return 1;}'
  console.log(func2); // do të shfaqë 'function() {return 2;}'
}

Siç e shihni, tani në konsol shfaqet kodi burimor i funksioneve. Le ta bëjmë që të shfaqen rezultatet e tyre. Për këtë, le t'u shkruajmë funksioneve kllapa të rrumbullakëta:

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

function test(func1, func2) {
  console.log( func1() ); // do të shfaqë 1
  console.log( func2() ); // do të shfaqë 2
}

Le të shfaqim në konsol shumën e rezultateve të funksionit të parë dhe të dytë:

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

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

Krijoni një funksion test që si parametra pranon 3 funksione. Kalojini në të si parametër të parë një funksion që kthen 1, si të dytin - një funksion që kthen 2, si të tretin - një funksion që kthen 3. Shfaqni në konsol shumën e rezultateve të funksioneve.