JavaScript'te Fonksiyonların Parametre Olarak Aktarılması

Fonksiyonlar, tıpkı sayılar, dizeler ve diziler gibi, başka fonksiyonlara parametre olarak aktarılabilir.

Pratik bir örnekle daha yakından inceleyelim. İki parametre alan test adında bir fonksiyonumuz olduğunu varsayalım:

javascripttest(parametre1, parametre2);

Şimdi test fonksiyonunun ilk parametresine 1 döndüren bir isimsiz fonksiyon, ikinci parametresine ise 2 döndüren bir isimsiz fonksiyon aktaralım:

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

Yukarıdaki kod henüz çalışmaz, çünkü fonksiyonun kendisini oluşturmadık. Şimdi oluşturalım:

javascriptfunction test(func1, func2) {
  
}

Fonksiyonu tanımlarken iki parametre belirttik - func1 ve func2. Bu parametreler, içlerine ne aktarılacağı hakkında hiçbir şey bilmez. Örneğin, sayılar aktarabiliriz:

javascripttest(1, 2); // fonksiyonu çağırıyoruz

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

Veya fonksiyonlar aktarabiliriz:

javascripttest(
  function() {return 1;}, // ilk parametre
  function() {return 2;}  // ikinci parametre
);

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

Gördüğünüz gibi, konsol artık fonksiyonların kaynak kodunu yazdırıyor. Şimdi, sonuçlarını yazdıracak şekilde değiştirelim. Bunun için fonksiyonlara yuvarlak parantezler ekleyelim:

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

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

Şimdi konsola, birinci ve ikinci fonksiyonun sonuçlarının toplamını yazdıralım:

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

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

Parametre olarak 3 fonksiyon alan bir test fonksiyonu yapın. İlk parametre olarak 1 döndüren, ikinci olarak 2 döndüren, üçüncü olarak 3 döndüren fonksiyonları aktarın. Konsola fonksiyon sonuçlarının toplamını yazdırın.