Пристап до надворешни променливи на функции во 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
Уште еднаш: всушност функцијата ги знае вредностите на надворешните променливи, дури и без да биде повикана.