Variabla Lokale e Numëruesit në JavaScript
Le të shqyrtojmë kodin e mëposhtëm:
function test() {
let num = 1;
return function() {
console.log(num);
num++;
};
}
test()(); // do të shfaqë 1
test()(); // do të shfaqë 1
Pse gjithmonë do të shfaqet numri 1? Për
ta kuptuar këtë, le të rishkruajmë kodin tonë
ndryshe:
function test() {
let num = 1;
return function() {
console.log(num);
num++;
};
};
let func1 = test(); //!! funksioni i parë
func1(); //shfaq 1
let func2 = test(); //!! funksioni i dytë
func2(); //shfaq 1
Kjo do të thotë se çdo thirrje e funksionit test
në këtë mënyrë: test()(), krijon funksionin e vet
me mbylljen e vet dhe menjëherë e thërret atë
funksion.
Përcaktoni, pa ekzekutuar kodin, çfarë do të shfaqet në konsol:
function func() {
let num = 0;
return function() {
console.log(num);
num++;
};
}
func()();
func()();
func()();
Përcaktoni, pa ekzekutuar kodin, çfarë do të shfaqet në konsol:
function func() {
let num = 0;
return function() {
console.log(num);
num++;
};
}
let test = func;
test()();
test()();
test()();