Funkciju padošana kā parametri JavaScript
Funkcijas, līdzīgi kā skaitļi, virknes un masīvi, var tikt padotas kā parametri citās funkcijās.
Apskatīsim sīkāk praktiskā piemērā.
Pieņemsim, ka mums ir funkcija test, kas pieņem
dus parametrus:
test(parametrs1, parametrs2);
Iesniegsim pirmajā funkcijas test parametrā
anonīmu funkciju, kas atgriež
1, bet otrajā parametrā - anonīmu
funkciju, kas atgriež 2:
test(
function() {return 1;},
function() {return 2;}
);
Iepriekš minētais kods pagaidām nedarbojas, jo mēs neesam izveidojuši pašu funkciju. Izveidosim to:
function test(func1, func2) {
}
Definējot funkciju, mēs norādījām divus parametrus
- func1 un func2. Šie parametri
neko nezina par to, kas tajos tiks padots.
Mēs, piemēram, varam padot skaitļus:
test(1, 2); // izsaucam funkciju
function test(func1, func2) {
console.log(func1); // izvadīs 1
console.log(func2); // izvadīs 2
}
Bet mēs varam arī padot funkcijas:
test(
function() {return 1;}, // pirmais parametrs
function() {return 2;} // otrais parametrs
);
function test(func1, func2) {
console.log(func1); // izvadīs 'function() {return 1;}'
console.log(func2); // izvadīs 'function() {return 2;}'
}
Kā jūs redzat, tagad konsolē tiek izvadīts funkciju pirmavota kods. Padarīsim tā, lai tas izvadītu to rezultātus. Lai to izdarītu, pierakstīsim funkcijām apaļās iekavas:
test(
function() {return 1;},
function() {return 2;}
);
function test(func1, func2) {
console.log( func1() ); // izvadīs 1
console.log( func2() ); // izvadīs 2
}
Izvadīsim konsolē pirmās un otrās funkcijas rezultātu summu:
test(
function() {return 1;},
function() {return 2;}
);
function test(func1, func2) {
console.log( func1() + func2() ); // izvadīs 3
}
Izveidojiet funkciju test, kuras parametros
tiek pieņemtas 3 funkcijas. Padodiet tajā
pirmajā parametrā funkciju, kas atgriež
1, otrajā - funkciju, kas atgriež
2, trešajā - funkciju, kas atgriež
3. Izvadiet konsolē funkciju rezultātu summu.