Matriz com funções anônimas em JavaScript
Já mencionei anteriormente que funções em JavaScript se comportam como strings ou números. Em particular, é possível criar uma matriz composta por funções. Vamos criar:
let arr = [
function() {console.log('1')},
function() {console.log('2')},
function() {console.log('3')},
];
Vamos, por exemplo, exibir no console o conteúdo do elemento de índice zero da matriz:
let arr = [
function() {console.log('1')},
function() {console.log('2')},
function() {console.log('3')},
];
console.log(arr[0]); // veremos o código fonte da primeira função
Como você pode ver, no exemplo acima nós obtemos o código fonte da função, e não o resultado.
Para que a função seja chamada, é necessário
adicionar parênteses após ela. Como nossa função
está armazenada em arr[0], os parênteses
precisam ser escritos após os colchetes, assim:
arr[0](). Vamos testar:
let arr = [
function() {console.log('1')},
function() {console.log('2')},
function() {console.log('3')},
];
arr[0](); // exibirá '1'
Também podemos percorrer nossa matriz de funções com um loop e, nesse loop, chamar cada uma das funções:
let arr = [
function() {console.log('1')},
function() {console.log('2')},
function() {console.log('3')},
];
for (let func of arr) {
func(); // chamamos nossas funções no loop
}
Crie uma matriz arr com três funções.
Deixe a primeira retornar via return
o número 1,
a segunda - o número 2,
a terceira - o número 3.
Usando a matriz arr que você criou,
exiba no console o número 3, chamando
a função correspondente.
Usando a matriz arr que você criou,
encontre a soma dos resultados das funções (sem usar loop).
Percorra a matriz arr que você criou
com um loop e exiba os resultados de todas
as funções no console.