JavaScriptтегі функция, функция қайтарады
Бізде жол қайтаратын мынадай функция болсын:
function func() {
return '!';
}
let result = func();
console.log(result); // шығады '!'
Енді жолдың орнына, ұқсас түрде, анонимді функцияны қайтарайық:
function func() {
return function() {
return '!';
};
}
let result = func(); // result айнымалысында функция болады
console.log(result); // шығады 'function() {return '!';}'
Көріп отырғаныңыздай, result айнымалысы енді
функцияны білдіреді. Оның жұмысының нәтижесін
консольге шығарайық. Ол үшін оған дөңгелек жақшалар жазамыз:
function func() {
return function() {
return '!';
};
}
let result = func();
console.log( result() ); // шығады '!'
func() шалуы функцияны қайтарғандықтан,
біз бұл қайтарылған функцияны дереу шақыра аламыз,
мыналай: func()() - бірінші
дөңгелек жақшалар func функциясының нәтижесін алады
(ол өзі функция болып табылады),
ал екінші дөңгелек жақшалар func нәтижесіне қолданылады.
Көрейік:
function func() {
return function() {
return '!';
};
}
console.log( func()() ); // шығады '!'
func1 функциясын жасаңыз, ол мыналай
шақырылғанда: func1()(),
1 санын қайтарсын. Ұқсас функция
func2 жасаңыз, ол 2 санын қайтарсын.
Осы функциялардың нәтижелерінің қосындысын табыңыз.