Приступ спољним променљивим функција у JavaScript-у
Хајде да погледамо следећи код:
let num = 1; // задаје се вредност променљиве
function func() {
console.log(num); // исписује је у конзолу
}
func(); // позива функцију
Као што сам већ споменуо раније, вредност променљиве не мора нужно бити пре дефиниције функције, главно је да буде постављена пре њеног позива:
function func() {
console.log(num);
}
let num = 1;
func();
Заправо то није сасвим тачно. Наша функција
чак и пре свог позива зна вредност променљиве
num:
let num = 1;
function func() {
console.log(num); // функција већ зна да је num = 1
}
Ево сложенијег примера:
let num = 1; // функција у овом тренутку сазнаје да је num = 1
function func() {
console.log(num);
}
num = 2; // функција у овом тренутку сазнаје да је num = 2
Додајмо позиве функције:
let num = 1; // функција у овом тренутку сазнаје да је num = 1
func(); // исписаће 1
function func() {
console.log(num);
}
func(); // исписаће 1
num = 2; // функција у овом тренутку сазнаје да је num = 2
func(); // исписаће 2
Још једном: заправо функција зна вредности спољних променљивих, чак и ако није била позвана.