Función como variable en JavaScript
Entonces, en la lección anterior, descubrimos que al acceder a una función sin paréntesis, obtenemos su código fuente.
En realidad, es mucho más interesante. En JavaScript, a diferencia de otros lenguajes, las funciones son los mismos valores de variable que los números, las cadenas y los arrays.
Veamos un ejemplo. Supongamos que tenemos
una función, por ejemplo, func:
function func() {
console.log('!');
}
En realidad, no tenemos una función func.
Tenemos una variable func que almacena
el código fuente de la función.
Podemos, por ejemplo, sobrescribir la variable
func con algo más, como por ejemplo,
una cadena. En este caso, la función func
ya no será una función, sino una cadena.
Observa el ejemplo:
function func() {
console.log('!');
}
func(); // mostrará '!'
func = 'string'; // sobrescribimos la variable func
console.log(func); // mostrará 'string'
Crea una función func que
devuelva mediante return alguna cadena.
Muestra el resultado de la ejecución de la función func
en la consola.
Muestra el código fuente de la función func
en la consola.
Asigna a la variable func el número 123,
sobrescribiendo así la función en esta variable.
Muestra el nuevo valor de la variable func
en la consola.