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:

javascriptlet 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:

javascriptlet netije = (function() {
  return '!';
})();

console.log(netije); // '!' çykarar

Indi bolsa, ýerinde çagyrylan funksiýanyň netijesi atlandyrylmadyk funksiýa bolsun:

javascriptlet funks = (function() {
  return function() {
    console.log('!');
  }
})();

funks(); // '!' çykarar

Geliň, yzyna gaýdarylýan funksiýanyň ýapyşda num üýtgeýjisini saklamasyny edeliň:

javascriptlet funks = (function() {
  let num = 1;
  
  return function() {
    console.log(num);
  }
})();

Eger-de num++ goşulsa, onda funks funksiýasy taýýar sanagç bolup biler:

javascriptlet 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
Задание 1

Meniň koduma seretmän, şuňa meňzeş sanagçy özbaşdak amala aşyryň.

Задание 2

Sanagçyň işini üýtgediň, şonuň üçin ol 5-e çenli sansyn, soň bolsa sanaw başdan başlasyn.