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 ни қайтарадиган функцияни ўткамиз.
Функциялар натижаларининг йиғиндисини консолга чиқаринг.