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:
test(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:
test(
function() {return 1;},
function() {return 2;}
);
Yukarıdaki kod henüz çalışmaz, çünkü fonksiyonun kendisini oluşturmadık. Şimdi oluşturalım:
function 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:
test(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:
test(
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:
test(
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:
test(
function() {return 1;},
function() {return 2;}
);
function test(func1, func2) {
console.log( func1() + func2() ); // 3 yazdıracak
}
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.