Prieiga prie išorinių funkcijų kintamųjų JavaScript
Panagrinėkime tokį kodą:
let num = 1; // nustatome kintamojo reikšmę
function func() {
console.log(num); // išvedame ją į konsolę
}
func(); // iškviečiame funkciją
Kaip jau minėjau anksčiau, kintamojo reikšmė nebūtinai turi būti prieš funkcijos apibrėžimą, svarbiausia, kad ji būtų prieš jos iškvietimą:
function func() {
console.log(num);
}
let num = 1;
func();
Iš tikrųjų tai nėra visiškai taip. Mūsų funkcija
net prieš savo iškvietimą žino kintamojo reikšmę
num:
let num = 1;
function func() {
console.log(num); // funkcija jau žino, kad num = 1
}
Štai sudėtingesnis pavyzdys:
let num = 1; // funkcija šiuo momentu sužino, kad num = 1
function func() {
console.log(num);
}
num = 2; // funkcija šiuo momentu sužino, kad num = 2
Pridėkime funkcijos iškvietimus:
let num = 1; // funkcija šiuo momentu sužino, kad num = 1
func(); // išves 1
function func() {
console.log(num);
}
func(); // išves 1
num = 2; // funkcija šiuo momentu sužino, kad num = 2
func(); // išves 2
Dar kartą: iš tikrųjų funkcija žino išorinių kintamųjų reikšmes, net jei nebuvo iškviesta.