Функсияҳоро ба ҳамчун параметр дар JavaScript гузаронд
Функсияҳо, монанди ададҳо, сатрҳо ва массивҳо, метавонанд ба ҳамчун параметрҳо ба функсияҳои дигар гузаронида шаванд.
Биёед бо мисоли амалӣ ба тафсил баррасӣ кунем.
Фарз мекунем, ки мо функсияи test-ро дорем, ки
ду параметр қабул мекунад:
test(параметр1, параметр2);
Биёед ба параметри якуми функсияи test
функсияи бе номеро гузаронем, ки
1 бармегардонад, ва ба параметри дуюм - функсияи
бе номе, ки 2 бармегардонад:
test(
function() {return 1;},
function() {return 2;}
);
Рамзи боло, ҳоло кор намекунад, зеро ки худи функсияро эҷод накардаем. Биёед инро анҷом диҳем:
function test(func1, func2) {
}
Ҳангоми муайян кардани функсия, мо ду параметрро
муайян кардем - func1 ва func2. Ин параметрҳо
дар бораи он чӣ ба онҳо гузаронида мешавад, чизе намедонанд.
Метавонем, барои намуна, ададҳоро гузаронем:
test(1, 2); // функсияро даъват мекунем
function test(func1, func2) {
console.log(func1); // 1-ро чоп мекунад
console.log(func2); // 2-ро чоп мекунад
}
Ё метавонем функсияҳоро гузаронем:
test(
function() {return 1;}, // параметри якум
function() {return 2;} // параметри дуюм
);
function test(func1, func2) {
console.log(func1); // 'function() {return 1;}'-ро чоп мекунад
console.log(func2); // 'function() {return 2;}'-ро чоп мекунад
}
Чун мебинед, акнун рамзи манбаи функсияҳо ба консол бароварда мешавад. Биёед ба тавре кор кунем, ки натиҷаҳои онҳоро чоп кунад. Барои ин, ба функсияҳо қавсҳои даврӣ менависем:
test(
function() {return 1;},
function() {return 2;}
);
function test(func1, func2) {
console.log( func1() ); // 1-ро чоп мекунад
console.log( func2() ); // 2-ро чоп мекунад
}
Биёед ҳосили ҷамъи натиҷаҳои функсияи аввал ва дуюмро ба консол бароварем:
test(
function() {return 1;},
function() {return 2;}
);
function test(func1, func2) {
console.log( func1() + func2() ); // 3-ро чоп мекунад
}
Функсияи test-ро созед, ки параметрҳояш
3 функсия қабул мекунанд. Ба
он функсияеро гузаронед, ки параметри якум
1 бармегардонад, дуюм - функсияе, ки
2 бармегардонад, сеюм - функсияе, ки
3 бармегардонад. Ҳосили ҷамъи натиҷаҳои
функсияҳоро ба консол чоп кунед.