Melewatkan Fungsi sebagai Parameter dalam JavaScript
Fungsi, seperti angka, string, dan array, dapat dilewatkan sebagai parameter ke fungsi lain.
Mari kita bahas lebih detail dengan contoh praktis.
Misalkan kita memiliki fungsi test yang menerima
dua parameter:
test(parameter1, parameter2);
Mari kita lewatkan ke parameter pertama fungsi test
sebuah fungsi anonim yang mengembalikan
1, dan ke parameter kedua - sebuah fungsi
anonim yang mengembalikan 2:
test(
function() {return 1;},
function() {return 2;}
);
Kode di atas belum berfungsi karena kita belum membuat fungsi itu sendiri. Mari kita buat:
function test(func1, func2) {
}
Saat mendefinisikan fungsi, kami menentukan dua parameter
- func1 dan func2. Parameter-parameter ini
tidak tahu apa-apa tentang apa yang akan dilewatkan ke dalamnya.
Kita bisa, misalnya, melewatkan angka:
test(1, 2); // memanggil fungsi
function test(func1, func2) {
console.log(func1); // akan menampilkan 1
console.log(func2); // akan menampilkan 2
}
Atau kita bisa melewatkan fungsi:
test(
function() {return 1;}, // parameter pertama
function() {return 2;} // parameter kedua
);
function test(func1, func2) {
console.log(func1); // akan menampilkan 'function() {return 1;}'
console.log(func2); // akan menampilkan 'function() {return 2;}'
}
Seperti yang Anda lihat, sekarang kode sumber fungsi ditampilkan di konsol. Mari kita ubah agar menampilkan hasilnya. Untuk melakukannya, tambahkan tanda kurung pada fungsi:
test(
function() {return 1;},
function() {return 2;}
);
function test(func1, func2) {
console.log( func1() ); // akan menampilkan 1
console.log( func2() ); // akan menampilkan 2
}
Mari kita tampilkan di konsol jumlah hasil dari fungsi pertama dan kedua:
test(
function() {return 1;},
function() {return 2;}
);
function test(func1, func2) {
console.log( func1() + func2() ); // akan menampilkan 3
}
Buatlah fungsi test yang menerima
3 fungsi sebagai parameternya.
Lewatkan ke dalamnya
sebagai parameter pertama sebuah fungsi yang mengembalikan
1, parameter kedua - fungsi yang mengembalikan
2, parameter ketiga - fungsi yang mengembalikan
3. Tampilkan di konsol jumlah hasil
ketiga fungsi tersebut.