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 санын.
Бул функциялардын натыйжаларынын суммасын табыңыз.