Pristup spoljnim promenljivim funkcija u JavaScriptu
Hajde da razmotrimo sledeći kod:
let num = 1; // postavljamo vrednost promenljive
function func() {
console.log(num); // ispisujemo je u konzolu
}
func(); // pozivamo funkciju
Kao što sam ranije pomenuo, vrednost promenljive ne mora nužno da bude pre definicije funkcije, glavno je da stoji pre njenog poziva:
function func() {
console.log(num);
}
let num = 1;
func();
Zapravo, to nije sasvim tačno. Naša funkcija
čak i pre svog poziva zna vrednost promenljive
num:
let num = 1;
function func() {
console.log(num); // funkcija već zna da je num = 1
}
Evo složenijeg primera:
let num = 1; // funkcija u ovom trenutku saznaje da je num = 1
function func() {
console.log(num);
}
num = 2; // funkcija u ovom trenutku saznaje da je num = 2
Dodajmo pozive funkcije:
let num = 1; // funkcija u ovom trenutku saznaje da je num = 1
func(); // ispisaće 1
function func() {
console.log(num);
}
func(); // ispisaće 1
num = 2; // funkcija u ovom trenutku saznaje da je num = 2
func(); // ispisaće 2
Još jednom: zapravo funkcija zna vrednosti spoljnih promenljivih, čak i ako nije pozvana.