जावास्क्रिप्ट में क्लोजर और तुरंत फंक्शन कॉल
जैसा कि आप पहले से जानते हैं, हम एक अनाम फंक्शन को तुरंत कॉल कर सकते हैं और उसके काम के परिणाम को किसी वेरिएबल को असाइन कर सकते हैं:
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 तक गिने, और फिर गिनती
शुरुआत से फिर से शुरू हो।