JavaScript හි සංවෘතතා සහ ක්ෂණික ශ්රිත ක්‍රියාකරවීම

ඔබ දැනටමත් දන්නා පරිදි, නිර්නාමික ශ්රිතයක් ක්ෂණිකව ක්‍රියාකරවීමෙන් පසු එහි ප්‍රතිඵලය යම් විචල්යයකට නිර්ණය කළ හැකිය:

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

console.log(result); // '!' ප්‍රදර්ශනය කරයි

බොහෝ විට, ක්ෂණිකව ක්‍රියාත්මක වන ශ්රිතය වරහන් තුළ ලියනු ලැබේ, එය අවශ්‍ය නොමැතිවත්. මෙය කරනු ලබන්නේ ශ්රිතය ක්ෂණිකව ක්‍රියා කරන බව හැඟෙන පරිදි වේගයෙන් දැකගත හැකි වනු වස්ය:

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

console.log(result); // '!' ප්‍රදර්ශනය කරයි

දැන්, ක්ෂණිකව ක්‍රියා කරවන ලද ශ්රිතයේ ප්‍රතිඵලය නිර්නාමික ශ්රිතයක් වීමට ඉඩ දෙන්න:

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

func(); // '!' ප්‍රදර්ශනය කරයි

ආපසු ලබා දෙන ශ්රිතය තුළ num විචල්යය සංවෘතතාවයක් ලෙස ගබඩා කරන ලෙස කරමු:

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

තව num++ එකතු කළහොත්, ශ්රිතය func සූදානම් ගණකයක් බවට පත්වේ:

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

func(); //1 ප්‍රදර්ශනය කරයි
func(); //2 ප්‍රදර්ශනය කරයි
func(); //3 ප්‍රදර්ශනය කරයි
func(); //4 ප්‍රදර්ශනය කරයි
func(); //5 ප්‍රදර්ශනය කරයි
Задание 1

මගේ කේතය දෙස නොබලා, ඔබම එවැනිම ගණකයක් ක්‍රියාත්මක කරන්න.

Задание 2

ගණකයේ ක්‍රියාකාරිත්වය වෙනස් කරන්න එවිට එය 5 දක්වා ගණන් කර, ඉන් පසු ගණන් කිරීම යළි ආරම්භ වේ.