Sluitings en Onmiddellike Funksie-aanroep in JavaScript
Soos jy reeds weet, kan jy 'n anonieme funksie onmiddellik aanroep en die resultaat van sy werk aan 'n veranderlike toewys:
let result = function() {
return '!';
}();
console.log(result); // sal '!' uitvoer
'n Funksie wat onmiddellik aangeroep word, word dikwels in ronde hakies geplaas, alhoewel dit nie nodig is nie. Dit word gedoen sodat dit dadelik sigbaar is dat die funksie onmiddellik aangeroep word:
let result = (function() {
return '!';
})();
console.log(result); // sal '!' uitvoer
Laat die resultaat van die onmiddellik-aangeroep funksie nou 'n anonieme funksie wees:
let func = (function() {
return function() {
console.log('!');
}
})();
func(); // sal '!' uitvoer
Kom ons maak dat die teruggegeven funksie
die veranderlike num in 'n sluiting stoor:
let func = (function() {
let num = 1;
return function() {
console.log(num);
}
})();
As jy nog 'n num++ byvoeg, sal die funksie
func 'n volledige teller word:
let func = (function() {
let num = 1;
return function() {
console.log(num);
num++;
}
})();
func(); // sal 1 uitvoer
func(); // sal 2 uitvoer
func(); // sal 3 uitvoer
func(); // sal 4 uitvoer
func(); // sal 5 uitvoer
Sonder om na my kode te kyk, implementeer dieselfde soort teller self.
Wysig die werking van die teller sodat
dit tot 5 tel, en dan begin die telling
vanvoor af.