Függvény, amely függvényt ad vissza JavaScriptben
Tegyük fel, hogy van egy olyan függvényünk, amely egy karakterláncot ad vissza:
function func() {
return '!';
}
let result = func();
console.log(result); // kiírja '!'
Most a karakterlánc helyett, analógia útján, adjunk vissza egy anonim függvényt:
function func() {
return function() {
return '!';
};
}
let result = func(); // a result változóban egy függvény lesz
console.log(result); // kiírja 'function() {return '!';}'
Amint látja, a result változó most
egy függvényt jelent. Naplózzuk a konzolra
annak működésének eredményét. Ehhez írjunk
zárójeleket utána:
function func() {
return function() {
return '!';
};
}
let result = func();
console.log( result() ); // kiírja '!'
Mivel a func() hívása egy függvényt ad vissza,
azonnal meghívhatjuk ezt a visszaadott
függvényt is, így: func()() - az első
zárójelek megkapják a func függvény
eredményét (ami maga is egy függvény),
míg a második zárójelek a func
eredményére vonatkoznak.
Próbáljuk ki:
function func() {
return function() {
return '!';
};
}
console.log( func()() ); // kiírja '!'
Készítsen egy func1 függvényt, amelyet
így hívva: func1()(), visszaadja
a 1 számot. Készítsen egy hasonló
func2 függvényt, amely a 2 számot adja vissza.
Keresse meg ezen függvények eredményeinek összegét.