JavaScript-da Yopilishlar va Funksiyani Joyida Chaqirish

Siz allaqachon bilasizki, anonim funksiyani joyida chaqirish va uning natijasini qandaydir o'zgaruvchiga tayinlash mumkin:

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

console.log(result); // '!' chiqadi

Ko'pincha, joyida chaqiriladigan funksiyani shunday holatda dumaloq qavs ichiga oladilar, garchi buning hojati yo'q. Buning maqsadi - funksiya joyida chaqirilayotgani darhol ko'rinishi uchun:

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

console.log(result); // '!' chiqadi

Endi, joyida chaqirilgan funksiya natijasi anonim funksiya bo'lsin:

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

func(); // '!' chiqadi

Keling, qaytariladigan funksiya num o'zgaruvchisini yopilishda saqlasin:

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

Agar yana num++ qo'shilsa, func funksiyasi tayyor hisoblagichga aylanadi:

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

func(); // 1 chiqadi
func(); // 2 chiqadi
func(); // 3 chiqadi
func(); // 4 chiqadi
func(); // 5 chiqadi
Задание 1

Mening kodimga qaramay, o'zingiz xuddi shunday hisoblagichni amalga oshiring.

Задание 2

Hisoblagichning ishlashini shunday o'zgartiringki, u 5 gacha sanasin, keyin esa hisoblash boshidan boshlansin.