Lexical scoping and closure concepts In Hindi
जावास्क्रिप्ट प्रोग्रामिंग में लेक्सिकल स्कोपिंग और क्लोजर दोनों फंडामेंटल फंक्शन प्रोग्रामिंग कन्सेप्ट हैं, जो जावास्क्रिप्ट प्रोग्रामर को डिक्लेअर प्रोग्राम वेरिएबल्स को एक्सेस करने और मौजूदा फ़ंक्शन्स से रिलेटेड टास्क को मेन्युप्लेट करने में हेल्प करते हैं।

So, let’s get to know more about lexical scoping and closure concepts in JavaScript programming.
Lexical Scoping JavaScript Function Concept.
लेक्सिकल प्रोग्राम स्कोपिंग जावास्क्रिप्ट प्रोग्राम में डिक्लेअर वेरिएबल नामों को रेफ़्रेन्स करता है। इसका मतलब है कि मौजूदा प्रोग्राम में डिक्लेअर प्रोग्राम के किसी वेरिएबल का यूसेज स्कोप जिससे की उन वेरिएबल को प्रोग्राम में आसपास रेफ़्रेन्स लेक्सिकल कन्सेप्ट के रूप में यूज़ किया जा सकता है. जहा ये प्रोग्राम सोर्स कोड में वेरिएबल डिक्लेरेशन लोकेशन से डिफाइन होते है।
सामान्य भाषा में, फंक्शन लेक्सिकल स्कोपिंग का मतलब है कि किसी जावास्क्रिप्ट प्रोग्राम में उस फ़ंक्शन के वेरिएबल का स्कोप या यूसेज होता है. जहा फंक्शन में उस वेरिएबल फंक्शन को डिफाइन करते समय उसके लोकेशन कंडीशन डिफाइन होता है।
How lexical scoping works in JavaScript functions.
जावास्क्रिप्ट फंक्शन में वेरिएबल्स उस ब्लॉक (स्कोप) के भीतर रेफ़्रेन्स के रूप में एक्सेस या उपयोग किए जा सकते हैं, जहा उन्हें उन फंक्शन में डिक्लेअर किया गया है।
लेक्सिकल स्कोप से प्रोग्राम में डिक्लेअर इंटरनल फ़ंक्शन्स के पास इसके स्कोप के साथ-साथ अपने आस-पास के सभी वेरिएबल रेफ़्रेन्स फ़ंक्शन्स के स्कोप्स में वेरिएबल्स को एक्सेस या यूज़ किया जाता है. जहा इसमें प्रोग्राम ग्लोबल फंक्शन स्कोप भी हो सकते है, जहा वे ग्लोबली फंक्शन के रूप में डिफाइन हो।
Example of lexical function.
function externalFunction() {
let externalVariable = “This is the example of external function”;
function internalFunction() {
console.log(externalVariable); // here it access externalVariable because of lexical scope variable refrence
}
internalFunction();
}
externalFunction(); // Result – This is the example of external function
Explanation of Lexical Function Scope Function.
ऊपर प्रोग्राम में लेक्सिकल स्कोपिंग के उपयोग से internalFunction() को externalVariable रेफ़्रेन्स को एक्सेस करता है। जबकि, यहाँ internalFunction() को externalFunction() के अंदर डिफाइन या डिक्लेअर किया गया है. इसके बाद भी यह अपने संलग्न फ़ंक्शन के लेक्सिकल रेफ़्रेन्स स्कोप externalVariable से वेरिएबल्स वैल्यू को रेफ़्रेन्स के रूप में एक्सेस और यूज़ करता है।
Important points of lexical scoping in function.
- Function Scope Hierarchy – फंक्शन प्रोग्राम में इंटरनल फ़ंक्शन एक्सटर्नल फ़ंक्शन के वेरिएबल्स को किसी भी प्रोग्राम में एक्सेस और यूज़ कर सकते हैं. लेकिन हमेशा याद रहे, एक्सटर्नल फ़ंक्शन इंटरनल फ़ंक्शन के वेरिएबल्स रेफ़्रेन्स को एक्सेस नहीं कर सकते है।
- Reference function scope – याद रहे, किसी फ़ंक्शन के अंदर डिक्लेअर प्रोग्राम वेरिएबल्स केवल उस प्रोग्राम फ़ंक्शन या उसके इंटरनल फ़ंक्शन के अंदर के रेफ़्रेन्स वेरिएबल को एक्सेस ओर यूज़ कर सकते हैं।
Closure Concept in JavaScript.
जावास्क्रिप्ट फंक्शन प्रोग्रामिंग में क्लोज़र एक ऐसा डिक्लेअर प्रोग्राम फ़ंक्शन है. जो मौजूदा प्रोग्राम में एक्सटर्नल फ़ंक्शन के एक्सेक्यूशन प्रोसेस के कम्पलीट होने के बाद भी अपने लेक्सिकल स्कोप रेफ़्रेन्स एनवायरनमेंट की वजह से आसपास के फ़ंक्शन के वेरिएबल्स तक एक्सेस और उन्हें यूज़ कर सकते है।
सामान्य भाषा में क्लोजर फंक्शन कांसेप्ट किसी फ़ंक्शन को उसके लेक्सिकल स्कोप को याद रखने और डिक्लेअर वेरिएबल एलिमेंट को एक्सेस और यूज़ करने की परमिशन प्रोवाइड करता हैं. वही क्लोजर फंक्शन तब भी जब वह फ़ंक्शन अपने मूल स्कोप में एक्सटरनली एक्सेक्यूट होता है।
How do closures work in JavaScript functions.
जावास्क्रिप्ट फंक्शन प्रोग्राम में जब किसी फ़ंक्शन को किसी अन्य फ़ंक्शन के अंदर डिक्लेअर या डिफाइन किया जाता है. तो इंटरनल फ़ंक्शन एक्सटर्नल फ़ंक्शन के वेरिएबल्स को क्लोज़ कर देता है। जिसका मतलब है कि एक्सटर्नल फ़ंक्शन के एक्सेक्यूशन कम्पलीट होने के बाद भी इंटरनल फ़ंक्शन के डिक्लेअर वेरिएबल्स को एक्सेस और यूज़ कर सकते है।
Example of closure function in JavaScript.
function externalFunction() {
let value = 0;
function internalFunction() {
value++;
console.log(value);
}
return internalFunction;
}
const grow = externalFunction(); // here const grow now become a closure scope
Explanation of closure function.
internalFunction(), externalFunction() फंक्शन द्वारा रिटर्न किया जाता है, और फंक्शन वेरिएबल grow को असाइन किया गया है। जबकि, यहाँ externalFunction() का एक्सेक्यूशन टर्मिनेट हो चूका है, वही internalFunction() value वेरिएबल को एक्सेस करता रहता है, जो इस प्रोग्राम के लेक्सिकल फंक्शन रेफ़्रेन्स स्कोप से जुड़ा हुआ है। एव्री टाइम जब grow() को कॉल किया जाता है, तो यह वैल्यू के वैल्यू को स्टोर रखता है, और हर बार एक्सेक्यूशन पर उसे मॉडिफाई करता रहता है।
Key features of Closures.
- Preserving function variables – फंक्शन प्रोग्राम में क्लोज़र अपने डिफाइन फ़ंक्शन्स के वेरिएबल्स को सिक्योर और मैनेज करता हैं, जैसे ही यह एक्सटर्नल फ़ंक्शन के एक्सेक्यूशन प्रोसेस को कम्पलीट कर लिया हो।
- Function private data – फंक्शन प्रोग्राम में क्लोज़र फीचर्स का उपयोग अक्सर प्राइवेट फंक्शन डेटा क्रिएट करने में किया जाता है, जिसे केवल इंटरनल फ़ंक्शन के द्वारा ही प्रोग्राम में एक्सेस या मॉडिफाई किया जाता है। यह जावास्क्रिप्ट फीचर्स जावास्क्रिप्ट फंक्शन प्रोग्रामिंग में डेटा एनकैप्सुलेशन में उपयोग किया जाता है।
Example of Closures for JavaScript data encapsulation.
function createvalue() {
let value = 0;
return {
increase: function() {
value++;
console.log(value);
},
decrease: function() {
value–;
console.log(value);
},
inputvalue: function() {
return value;
}
};
}
const value = createvalue();
Explanation of Closures for JavaScript data encapsulation.
यहाँ क्लोज़र में createvalue() फ़ंक्शन एक ऑब्जेक्ट वैल्यू को रिटर्न करता है, जिसमें कई ऐसी मेथड्स होती हैं, जिनकी वैल्यू प्रोग्राम में वेरिएबल तक एक्सेस होती है। यहाँ वैल्यू वेरिएबल createvalue() फ़ंक्शन के लिए एक प्राइवेट नेचर का होता है. लेकिन यहाँ क्लोज़र क्लास फीचर्स के माध्यम से, मेथड्स में (increase, और decrease, और inputvalue अभी भी इस डाटा के साथ कभी भी इंटरैक्ट या कम्यूनिकेट कर सकती हैं।
Lexical Scoping and Closures Together in JavaScript.
जावास्क्रिप्ट फंक्शन प्रोग्रामिंग में लेक्सिकल स्कोपिंग और क्लोज़र कांसेप्ट फीचर्स आपस में एक दूसरे से कनेक्टेड हैं.
जावास्क्रिप्ट प्रोग्रामिंग में लेक्सिकल स्कोपिंग यह डिफाइन करता है कि मौजूदा प्रोग्राम में डिक्लेअर वेरिएबल्स को कही से भी एक्सेस या यूज़ किया जा सकता है. डिक्लेअर प्रोग्राम वेरिएबल के एक्टिव लोकेशन के बेस पर।
जबकि फंक्शन प्रोग्राम में क्लोज़र फ़ंक्शन को उस फंक्शन स्कोप को क्रिएट करने वाले फ़ंक्शन के एक्सेक्यूशन टर्मिनेट होने के बाद भी अपने लेक्सिकल स्कोप से प्रोग्राम वेरिएबल्स वैल्यू को एक्सेस करना जारी रखने की परमिशन प्रोवाइड करते हैं।
Lexical Scoping and Closures Lexical Scoping in a Nutshell.
फंक्शन प्रोग्रामिंग में लेक्सिकल स्कोपिंग से आप मौजूदा फंक्शन प्रोग्राम सोर्स कोड में फ़ंक्शन कहाँ क्रिएट किए गए हैं, इसके आधार पर फंक्शन वेरिएबल्स का रेफ़्रेन्स स्कोप को डिफाइन किया जाता है।
वही क्लोज़र लेक्सिकल फंक्शन स्कोपिंग का उपयोग इंटरनल प्रोग्राम फ़ंक्शन को एक्सटर्नल फ़ंक्शन के वेरिएबल्स रेफ़्रेन्स को होल्ड रखने और उन्हें एक्सेस या यूज़ करने की परमिशन प्रोवाइड करते हैं. मौजूदा प्रोग्राम में एक्सटर्नल फ़ंक्शन के टर्मिनेट होने के बाद भी।
Practical Uses of Closures in JavaScript Programming.
Function Data Privacy.
जावास्क्रिप्ट फंक्शन में क्लोजर का उपयोग ज्यादातर प्राइवेट क्रिएट करने के लिए किया जाता है, जिन्हें मौजूदा प्रोग्राम में फ़ंक्शन में एक्सटर्नाली एक्सेस नहीं किया जा सकता है, लेकिन फंक्शन में रिटर्न मेथड के माध्यम से उनमें मेन्युप्लेट किया जा सकता है।
Function event handlers.
जावास्क्रिप्ट प्रोग्राम में क्लोजर इवेंट हैंडलर के लिए जरूरी होते हैं, क्योंकि ये मौजूदा प्रोग्राम में इवेंट हैंडलर फ़ंक्शन को उन डिक्लेअर प्रोग्राम वैरिएबल को एक्सेस करने और उनमें मेन्युप्लेट करने की परमिशन प्रोवाइड करते हैं, जिन्हें प्रोग्राम में हैंडलर क्रिएट करते समय डिफाइन किया गया था।
Lexical Scoping and Closure Conclusion.
- Function Lexical Scoping – फंक्शन लेक्सिकल स्कोप का उपयोग जावास्क्रिप्ट प्रोग्राम सोर्स कोड में डिफाइन लोकेशन के आधार पर वेरिएबल्स का स्कोप मौजूदा प्रोग्राम में डिफाइन करता है।
- Function Closures – क्लोजर फंक्शन जावास्क्रिप्ट प्रोग्राम में वे फ़ंक्शन होते हैं, जो एक्सटर्नल फ़ंक्शन के एक्सेक्यूशन टर्मिनेट होने के बाद भी, वेरिएबल के लेक्सिकल स्कोप रेफ़्रेन्स से वेरिएबल्स को “याद” रखते हैं। यह मेथड प्रोग्रामिंग में डेटा एनकैप्सुलेशन, प्राइवेट वेरिएबल्स डिक्लेरेशन सिक्योरिटी कण्ट्रोल और मैनेज करने में हेल्प करता है।