Pole s anonymními funkcemi v JavaScriptu

Už jsem dříve zmiňoval, že se funkce v JavaScriptu chovají jako řetězce nebo čísla. Konkrétně lze vytvořit pole skládající se z funkcí. Pojďme na to:

javascriptlet arr = [
  function() {console.log('1')},
  function() {console.log('2')},
  function() {console.log('3')},
];

Zkusme například vypsat do konsole obsah nultého prvku pole:

javascriptlet arr = [
  function() {console.log('1')},
  function() {console.log('2')},
  function() {console.log('3')},
];

console.log(arr[0]); // uvidíme zdrojový kód první funkce

Jak vidíte, v příkladu výše dostáváme zdrojový kód funkce, nikoli výsledek.

Aby došlo k volání funkce, je potřeba k ní dopsat kulaté závorky. Protože je naše funkce uložena v arr[0], je potřeba kulaté závorky napsat za hranaté, takto: arr[0](). Ověřme:

javascriptlet arr = [
  function() {console.log('1')},
  function() {console.log('2')},
  function() {console.log('3')},
];

arr[0](); // vypíše '1'

Můžeme také projít naše pole s funkcemi cyklem a v tomto cyklu zavolat každou z funkcí:

javascriptlet arr = [
  function() {console.log('1')},
  function() {console.log('2')},
  function() {console.log('3')},
];

for (let func of arr) {
  func(); // voláme naše funkce v cyklu
}
Задание 1

Vytvořte pole arr se třemi funkcemi. Nechť první vrátí pomocí return číslo 1, druhá - číslo 2, třetí - číslo 3.

Задание 2

Pomocí vytvořeného pole arr vypište do konsole číslo 3 voláním příslušné funkce.

Задание 3

Pomocí vytvořeného pole arr najděte součet výsledků funkcí (bez cyklu).

Задание 4

Projděte vytvořené pole arr cyklem a vypište výsledky práce všech funkcí do konsole.