Penghantaran Fungsi sebagai Parameter dalam JavaScript
Fungsi, seperti nombor, rentetan, dan tatasusunan, boleh dihantar sebagai parameter kepada fungsi lain.
Mari kita lihat dengan lebih lanjut melalui contoh praktikal.
Katakan kita mempunyai fungsi test yang menerima
dua parameter:
test(parameter1, parameter2);
Mari kita hantar fungsi tanpa nama yang mengembalikan
1 sebagai parameter pertama kepada fungsi test,
dan fungsi tanpa nama yang mengembalikan 2 sebagai
parameter kedua:
test(
function() {return 1;},
function() {return 2;}
);
Kod di atas masih belum berfungsi kerana kita belum mencipta fungsi itu sendiri. Mari kita buat:
function test(func1, func2) {
}
Apabila menentukan fungsi, kami menyatakan dua parameter
- func1 dan func2. Parameter-parameter ini
tidak tahu apa-apa tentang apa yang akan dihantar kepada mereka.
Kita boleh, sebagai contoh, menghantar nombor:
test(1, 2); // panggil fungsi
function test(func1, func2) {
console.log(func1); // akan output 1
console.log(func2); // akan output 2
}
Atau kita boleh menghantar fungsi:
test(
function() {return 1;}, // parameter pertama
function() {return 2;} // parameter kedua
);
function test(func1, func2) {
console.log(func1); // akan output 'function() {return 1;}'
console.log(func2); // akan output 'function() {return 2;}'
}
Seperti yang anda lihat, kini kod sumber fungsi dioutputkan ke konsol. Mari kita ubah supaya ia mengoutputkan hasil fungsi tersebut. Untuk melakukan ini, tulis tanda kurung untuk fungsi:
test(
function() {return 1;},
function() {return 2;}
);
function test(func1, func2) {
console.log( func1() ); // akan output 1
console.log( func2() ); // akan output 2
}
Mari outputkan jumlah hasil fungsi pertama dan kedua ke konsol:
test(
function() {return 1;},
function() {return 2;}
);
function test(func1, func2) {
console.log( func1() + func2() ); // akan output 3
}
Buat fungsi test yang menerima
3 fungsi sebagai parameternya.
Hantar ke
dalamnya fungsi yang mengembalikan
1 sebagai parameter pertama, fungsi yang mengembalikan
2 sebagai parameter kedua, dan fungsi yang mengembalikan
3 sebagai parameter ketiga. Outputkan jumlah hasil
fungsi-fungsi tersebut ke konsol.