JavaScript में क्लोज़र्स (Closures) कैसे काम करते हैं? एक सरल उदाहरण के साथ समझाएं
सभी को नमस्ते! मैंने अभी JavaScript सीखना शुरू किया है और क्लोज़र्स (closures) के विषय को समझ नहीं पा रहा हूँ। मैंने कई लेख पढ़े, लेकिन फिर भी भ्रमित हूँ।
उदाहरण के लिए, यह कोड है:
>>
function counter() {
let count = 0;
return function() {
count++;
return count;
};
}
const myCounter = counter();
console.log(myCounter()); // 1
console.log(myCounter()); // 2
console.log(myCounter()); // 3
हर बार count वेरिएबल रीसेट क्यों नहीं होता? आखिरकार, counter() फंक्शन ने अपना काम पूरा कर लिया है, लेकिन हम अभी भी इसके आंतरिक वेरिएबल को बदल सकते हैं। मुझे उम्मीद थी कि myCounter() के पहले कॉल के बाद count वेरिएबल नष्ट हो जाएगा, क्योंकि यह फंक्शन के अंदर घोषित किया गया है।
और एक और सवाल: क्लोज़र्स की आखिर ज़रूरत क्यों है? वास्तविक स्थितियों में इनका उपयोग कहाँ होता है? उदाहरणों के साथ सरल व्याख्या के लिए आभारी रहूँगा, अधिमानतः हिंदी में। पहले से धन्यवाद!
<<क्लोज़र क्या है और यह कैसे काम करता है?
क्लोज़र (closure) एक ऐसा फंक्शन है जो अपने बाहरी फंक्शन के वेरिएबल्स को 'याद' रखता है, भले ही बाहरी फंक्शन पूरा हो चुका हो। जब आप counter() को कॉल करते हैं, तो यह एक नया फंक्शन लौटाता है जो count वेरिएबल पर एक रेफरेंस रखता है। यह रेफरेंस गायब नहीं होता, इसलिए count बना रहता है और हर कॉल के साथ अपडेट होता है।
क्लोज़र्स का उपयोग डेटा प्राइवेसी, कार्यात्मक प्रोग्रामिंग, और इवेंट हैंडलर्स जैसी चीज़ों के लिए किया जाता है। उदाहरण के लिए, आप एक काउंटर बना सकते हैं जो केवल एक विशिष्ट फंक्शन के माध्यम से एक्सेस किया जा सके।