Acceso a variables externas de funciones en JavaScript
Consideremos el siguiente código:
let num = 1; // establecemos el valor de la variable
function func() {
console.log(num); // lo mostramos en la consola
}
func(); // llamamos a la función
Como mencioné anteriormente, el valor de la variable no necesariamente tiene que estar antes de la definición de la función, lo principal es que esté antes de su llamada:
function func() {
console.log(num);
}
let num = 1;
func();
En realidad, esto no es del todo cierto. Nuestra función
sabe el valor de la variable incluso antes de su llamada
num:
let num = 1;
function func() {
console.log(num); // la función ya sabe que num = 1
}
He aquí un ejemplo más complejo:
let num = 1; // en este momento la función se entera de que num = 1
function func() {
console.log(num);
}
num = 2; // en este momento la función se entera de que num = 2
Añadamos llamadas a la función:
let num = 1; // en este momento la función se entera de que num = 1
func(); // mostrará 1
function func() {
console.log(num);
}
func(); // mostrará 1
num = 2; // en este momento la función se entera de que num = 2
func(); // mostrará 2
Una vez más: en realidad, la función conoce los valores de las variables externas, incluso sin ser llamada.