JavaScript-da Ýapyşlar we Ýerinde Funksiýa Çagyryşy
Bildiğiňiz ýaly, atlandyrylmadyk funksiýany ýerinde çagyryp, iş netijesini haýsydyr bir üýtgeýjä belläp bilersiňiz:
let netije = function() {
return '!';
}();
console.log(netije); // '!' çykarar
Köp wagtlap, ýerinde çagyrylan funksiýany şeýle ýagdaýda, zerurlygy bolmasa-da, aýlawly äýjüge alýarlar. Bu, funksiýanyň ýerinde çagyrylýandygyny derrew görkezmek üçin edilýär:
let netije = (function() {
return '!';
})();
console.log(netije); // '!' çykarar
Indi bolsa, ýerinde çagyrylan funksiýanyň netijesi atlandyrylmadyk funksiýa bolsun:
let funks = (function() {
return function() {
console.log('!');
}
})();
funks(); // '!' çykarar
Geliň, yzyna gaýdarylýan funksiýanyň ýapyşda num üýtgeýjisini saklamasyny edeliň:
let funks = (function() {
let num = 1;
return function() {
console.log(num);
}
})();
Eger-de num++ goşulsa, onda funks funksiýasy taýýar sanagç bolup biler:
let funks = (function() {
let num = 1;
return function() {
console.log(num);
num++;
}
})();
funks(); // 1 çykarar
funks(); // 2 çykarar
funks(); // 3 çykarar
funks(); // 4 çykarar
funks(); // 5 çykarar
Meniň koduma seretmän, şuňa meňzeş sanagçy özbaşdak amala aşyryň.
Sanagçyň işini üýtgediň, şonuň üçin ol 5-e çenli sansyn, soň bolsa sanaw başdan başlasyn.