Plaaslike Tellerveranderlike in JavaScript
Beskou die volgende kode:
function test() {
let num = 1;
return function() {
console.log(num);
num++;
};
}
test()(); // sal 1 vertoon
test()(); // sal 1 vertoon
Hoekom sal altyd die nommer 1 vertoon word? Om
dit te verstaan, laat ons ons kode herskryf
op 'n ander manier:
function test() {
let num = 1;
return function() {
console.log(num);
num++;
};
};
let func1 = test(); //!! eerste funksie
func1(); //sal 1 vertoon
let func2 = test(); //!! tweede funksie
func2(); //sal 1 vertoon
Dit wil sê elke oproep van die funksie test
op hierdie manier: test()(), skep sy eie
funksie met sy eie sluiting en roep dadelik daardie
funksie aan.
Bepaal, sonder om die kode te laat loop, wat in die konsole vertoon sal word:
function func() {
let num = 0;
return function() {
console.log(num);
num++;
};
}
func()();
func()();
func()();
Bepaal, sonder om die kode te laat loop, wat in die konsole vertoon sal word:
function func() {
let num = 0;
return function() {
console.log(num);
num++;
};
}
let test = func;
test()();
test()();
test()();