Javascript-də funksiyaların parametr kimi ötürülməsi

Funksiyalar, ədədlər, sətirlər və massivlər kimi, digər funksiyalara parametr kimi ötürülə bilər.

Praktiki bir nümunə üzərində daha ətraflı baxaq. Tutaq ki, iki parametr qəbul edən test funksiyamız var:

javascripttest(parametr1, parametr2);

Gəlin test funksiyasının birinci parametrinə 1 qaytaran anonim funksiya, ikinci parametrinə isə 2 qaytaran anonim funksiya ötürək:

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

Yuxarıda göstərilən kod hələ işlək deyil, çünki funksiyanın özünü yaratmamışıq. Bunu edək:

javascriptfunction test(func1, func2) {
  
}

Funksiyanı təyin edərkən iki parametr göstərdik - func1 və func2. Bu parametrlər içərilərinə nə ötürüləcəyi barədə heç nə bilmir. Məsələn, ədədlər ötürə bilərik:

javascripttest(1, 2); // funksiyanı çağırırıq

function test(func1, func2) {
  console.log(func1); // 1 çap edəcək
  console.log(func2); // 2 çap edəcək
}

Yaxud funksiyalar ötürə bilərik:

javascripttest(
  function() {return 1;}, // birinci parametr
  function() {return 2;}  // ikinci parametr
);

function test(func1, func2) {
  console.log(func1); // 'function() {return 1;}' çap edəcək
  console.log(func2); // 'function() {return 2;}' çap edəcək
}

Gördüyünüz kimi, indi konsola funksiyaların mənbə kodu çap olunur. Gəlin onların nəticələrini çap etməsi üçün dəyişək. Bunun üçün funksiyalara dairəvi mötərizələr yazaq:

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

function test(func1, func2) {
  console.log( func1() ); // 1 çap edəcək
  console.log( func2() ); // 2 çap edəcək
}

Gəlin konsola birinci və ikinci funksiyanın nəticələrinin cəmini çap edək:

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

function test(func1, func2) {
  console.log( func1() + func2() ); // 3 çap edəcək
}
Задание 1

3 funksiya parametr kimi qəbul edən test funksiyası hazırlayın. Ona birinci parametr kimi 1 qaytaran funksiya, ikinci kimi 2 qaytaran funksiya, üçüncü kimi 3 qaytaran funksiya ötürün. Funksiyaların nəticələrinin cəmini konsola çap edin.