Sulunditel põhinev loendur JavaScriptis
Kirjutame ümber koodi, mida me vaatlesime,
nii et tagastatud funktsioon suurendaks
muutuja num väärtust iga kord
ühe võrra:
function test() {
let num = 1;
return function() {
console.log(num);
num++; // liidame ühe
}
}
let func = test();
Selgub, et iga funktsiooni func
käivitamine
prindib konsooli uue väärtuse:
function test() {
let num = 1;
return function() {
console.log(num);
num++;
}
}
let func = test();
func(); //prindib 1
func(); //prindib 2
func(); //prindib 3
func(); //prindib 4
func(); //prindib 5
Selgub, et oleme realiseerinud funktsiooni
käivitusloenduri, kasutades sulundit (täpsemalt kasutades
muutujat num meie funktsiooni sulundist).
Pidage meeles, et iga funktsiooni test
käivitamine
tagastab uue funktsiooni, millel
on oma sulund. See tähendab, et erinevad loendurid
töötavad sõltumatult:
function test() {
let num = 1;
return function() {
console.log(num);
num++;
};
}
let func1 = test(); // esimene loendur
func1(); //prindib 1
func1(); //prindib 2
let func2 = test(); // teine loendur
func2(); //prindib 1
func2(); //prindib 2
Selgub, et sama muutuja num
erinevate funktsioonide jaoks on erinev väärtus!
See tähendab, et kui me käivitame funktsiooni test
kaks korda, siis sellest saadud funktsioonid
töötavad sõltumatult ja iga
nendest funktsioonidest on oma sõltumatu
muutuja num.
Realiseerige iseseisvalt, minu koodi peale vahtimata, funktsiooni käivitusloendur, mis töötab sulunditel.
Olgu funktsiooni sulundis hoitav number 10.
Tehke nii, et iga funktsiooni
käivitamine vähendaks seda numbrit 1 võrra
ja prindiks
konsooli vähendatud numbri.
Modifitseerige eelmist ülesannet nii, et
loendus jõuaks 0-ni ja seejärel iga
järgnev funktsiooni käivitamine prindiks konsooli
teate, et loendus on lõppenud.