जावास्क्रिप्ट में क्लोजर और तुरंत फंक्शन कॉल
जैसा कि आप पहले से जानते हैं, हम एक अनाम फंक्शन को तुरंत कॉल कर सकते हैं और उसके काम के परिणाम को किसी वेरिएबल को असाइन कर सकते हैं:
let result = function() {
return '!';
}();
console.log(result); // '!' प्रिंट करेगा
अक्सर, तुरंत कॉल होने वाले फंक्शन को इस मामले में गोल कोष्ठक में लेते हैं, हालांकि इसकी कोई आवश्यकता नहीं है। यह इसलिए किया जाता है ताकि तुरंत दिख जाए कि फंक्शन तुरंत कॉल हो रहा है:
let result = (function() {
return '!';
})();
console.log(result); // '!' प्रिंट करेगा
अब ऐसा करते हैं कि तुरंत कॉल किए गए फंक्शन का परिणाम एक अनाम फंक्शन हो:
let func = (function() {
return function() {
console.log('!');
}
})();
func(); // '!' प्रिंट करेगा
आइए ऐसा करते हैं कि वापस लौटने वाला फंक्शन
क्लोजर में वेरिएबल num स्टोर करे:
let func = (function() {
let num = 1;
return function() {
console.log(num);
}
})();
यदि इसमें num++ और जोड़ दें, तो फंक्शन
func एक तैयार काउंटर बन जाएगा:
let func = (function() {
let num = 1;
return function() {
console.log(num);
num++;
}
})();
func(); // 1 प्रिंट करेगा
func(); // 2 प्रिंट करेगा
func(); // 3 प्रिंट करेगा
func(); // 4 प्रिंट करेगा
func(); // 5 प्रिंट करेगा
मेरे कोड में न देखे, स्वयं ऐसा ही एक काउंटर लागू करें।
काउंटर के काम को इस तरह संशोधित करें कि
वह 5 तक गिने, और फिर गिनती
शुरुआत से फिर से शुरू हो।