Kalimi i funksioneve si parametra në JavaScript
Funksionet, ngjashëm me numrat, vargjet dhe array-t, mund të kalohen si parametra në funksione të tjera.
Le ta shqyrtojmë më në hollë me një shembull praktik.
Le të themi se kemi një funksion test që pranon
dy parametra:
test(parametri1, parametri2);
Le të kalojmë në parametrin e parë të funksionit test
një funksion anonim që kthen
1, dhe në parametrin e dytë - një funksion
anonim që kthen 2:
test(
function() {return 1;},
function() {return 2;}
);
Kodi i dhënë më sipër ende nuk funksionon, pasi ne nuk e kemi krijuar vetë funksionin. Le ta krijojmë:
function test(func1, func2) {
}
Gjatë përcaktimit të funksionit, ne kemi përcaktuar dy parametra
- func1 dhe func2. Këta parametra
nuk dinë asgjë nëse diçka do t'u kalohet atyre.
Mund të kemi, për shembull, kaluar numra:
test(1, 2); // therrasim funksionin
function test(func1, func2) {
console.log(func1); // do të shfaqë 1
console.log(func2); // do të shfaqë 2
}
Por mund të kemi kaluar funksione:
test(
function() {return 1;}, // parametri i parë
function() {return 2;} // parametri i dytë
);
function test(func1, func2) {
console.log(func1); // do të shfaqë 'function() {return 1;}'
console.log(func2); // do të shfaqë 'function() {return 2;}'
}
Siç e shihni, tani në konsol shfaqet kodi burimor i funksioneve. Le ta bëjmë që të shfaqen rezultatet e tyre. Për këtë, le t'u shkruajmë funksioneve kllapa të rrumbullakëta:
test(
function() {return 1;},
function() {return 2;}
);
function test(func1, func2) {
console.log( func1() ); // do të shfaqë 1
console.log( func2() ); // do të shfaqë 2
}
Le të shfaqim në konsol shumën e rezultateve të funksionit të parë dhe të dytë:
test(
function() {return 1;},
function() {return 2;}
);
function test(func1, func2) {
console.log( func1() + func2() ); // do të shfaqë 3
}
Krijoni një funksion test që si parametra
pranon 3 funksione. Kalojini në
të si parametër të parë një funksion që kthen
1, si të dytin - një funksion që kthen
2, si të tretin - një funksion që kthen
3. Shfaqni në konsol shumën e rezultateve
të funksioneve.