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:

javascriptfunction 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:

javascriptfunction 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:

javascriptfunction 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:

javascriptfunction func() {
  return function() {
    return '!';
  };
}

console.log( func()() ); // kiírja '!'
Задание 1

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.