Matriz con funciones anónimas en JavaScript
Ya he mencionado antes que las funciones en JavaScript se comportan como cadenas o números. En particular, se puede hacer una matriz que consiste en funciones. Hagámoslo:
let arr = [
function() {console.log('1')},
function() {console.log('2')},
function() {console.log('3')},
];
Vamos, por ejemplo, a mostrar en la consola el contenido del elemento cero de la matriz:
let arr = [
function() {console.log('1')},
function() {console.log('2')},
function() {console.log('3')},
];
console.log(arr[0]); // veremos el código fuente de la primera función
Como puedes ver, en el ejemplo anterior obtenemos el código fuente de la función, no el resultado.
Para que se realice la llamada a la función, es necesario
añadir paréntesis a la misma. Dado que nuestra función
se almacena en arr[0], los paréntesis
deberán escribirse después de los corchetes, de esta
manera: arr[0](). Comprobemos:
let arr = [
function() {console.log('1')},
function() {console.log('2')},
function() {console.log('3')},
];
arr[0](); // mostrará '1'
También se puede recorrer nuestra matriz de funciones con un ciclo y en este ciclo llamar a cada una de las funciones:
let arr = [
function() {console.log('1')},
function() {console.log('2')},
function() {console.log('3')},
];
for (let func of arr) {
func(); // llamamos a nuestras funciones en el ciclo
}
Haz una matriz arr con tres funciones.
Que la primera devuelva mediante return
el número 1, la segunda - el número 2,
la tercera - el número 3.
Usando la matriz arr que creaste
muestra en la consola el número 3, llamando
a la función correspondiente.
Usando la matriz arr que creaste
encuentra la suma de los resultados de las funciones (sin ciclo).
Recorre la matriz arr que creaste
con un ciclo y muestra los resultados de todas
las funciones en la consola.