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 мәнін қайтаратын функцияны беріңіз.
Консольге функция нәтижелерінің қосындысын шығарыңыз.