JavaScript-də Funksiyanı Qaytaran Funksiya
Tutaq ki, bizdə sətri qaytaran belə bir funksiya var:
function func() {
return '!';
}
let result = func();
console.log(result); // '!' çap edəcək
İndi isə, oxşar şəkildə, sətir əvəzinə anonim funksiya qaytaraq:
function func() {
return function() {
return '!';
};
}
let result = func(); // result dəyişənində funksiya olacaq
console.log(result); // 'function() {return '!';}' çap edəcək
Gördüyünüz kimi, result dəyişəni
indi bir funksiyadır. Gəlin onun nəticəsini
konsole çap edək. Bunun üçün ona dəyirmi mötərizələr yazaq:
function func() {
return function() {
return '!';
};
}
let result = func();
console.log( result() ); // '!' çap edəcək
func() çağırışı funksiya qaytardığı üçün,
biz bu qaytarılan funksiyani dərhal çağıra bilərik,
belə: func()() - birinci dəyirmi mötərizələr
func funksiyasının nəticəsini (özü də funksiya olan)
alır, ikinci dəyirmi mötərizələr isə func-ın
nəticəsinə tətbiq olunur.
Gəlin yoxlayaq:
function func() {
return function() {
return '!';
};
}
console.log( func()() ); // '!' çap edəcək
func1 funksiyasını elə düzəldin ki,
belə çağırıldıqda: func1()(),
1 rəqəmini qaytarsın. func2
üçün də oxşar funksiya düzəldin, 2 rəqəmini
qaytarsın. Bu funksiyaların nəticələrinin cəmini tapın.