Sulgemised ja funktsiooni kohene käivitamine JavaScriptis
Nagu te juba teate, on võimalik koheselt käivitada anonüümne funktsioon ja määrata selle töö tulemus mõnele muutujale:
let result = function() {
return '!';
}();
console.log(result); // väljastab '!'
Sageli pannakse koheselt käivitatav funktsioon sellisel juhul ümarsulgudesse, kuigi pole sellist vajadust. Seda tehakse selleks, et oleks kohe näha, et funktsioon käivitatakse kohe:
let result = (function() {
return '!';
})();
console.log(result); // väljastab '!'
Olgu nüüd koheselt käivitatud funktsiooni tulemuseks anonüümne funktsioon:
let func = (function() {
return function() {
console.log('!');
}
})();
func(); // väljastab '!'
Teeme nii, et tagastatav funktsioon
hoiaks sulgemises muutujat num:
let func = (function() {
let num = 1;
return function() {
console.log(num);
}
})();
Kui lisada veel num++, siis funktsioon
func saab valmis loenduriks:
let func = (function() {
let num = 1;
return function() {
console.log(num);
num++;
}
})();
func(); //väljastab 1
func(); //väljastab 2
func(); //väljastab 3
func(); //väljastab 4
func(); //väljastab 5
Minu koodi piilumata, realiseerige selline loendur iseseisvalt.
Muutke loenduri tööd nii, et
see loeb kuni 5-ni ja seejärel algab lugemine
algusest.