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:
let arr = [
function() {console.log('1')},
function() {console.log('2')},
function() {console.log('3')},
];
Zkusme například vypsat do konsole obsah nultého prvku pole:
let 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:
let 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í:
let 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
}
Vytvořte pole arr se třemi funkcemi.
Nechť první vrátí pomocí return
číslo 1, druhá - číslo 2,
třetí - číslo 3.
Pomocí vytvořeného pole arr
vypište do konsole číslo 3 voláním
příslušné funkce.
Pomocí vytvořeného pole arr
najděte součet výsledků funkcí (bez cyklu).
Projděte vytvořené pole arr
cyklem a vypište výsledky práce všech
funkcí do konsole.