"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > क्लोजर लूप्स में राज्य साझाकरण समस्या को कैसे हल कर सकता है?

क्लोजर लूप्स में राज्य साझाकरण समस्या को कैसे हल कर सकता है?

2024-11-10 को प्रकाशित
ब्राउज़ करें:728

How Can Closures Solve the State Sharing Problem in Loops?

लूप्स में क्लोजर का प्रभावी ढंग से उपयोग करना: अवधारणा को समझना

क्लोजर-आधारित लूप्स को समझना चुनौतीपूर्ण हो सकता है, लेकिन वे इसके लिए एक शक्तिशाली तकनीक प्रदान करते हैं पुनरावृत्ति करते समय अद्वितीय स्थिति बनाए रखना। अवधारणा को सरल बनाने के लिए, आइए उदाहरण कोड पर दोबारा गौर करें:

function addLinks() {
    for (var i = 0, link; i 

यहां, वेरिएबल i को लूप के भीतर बनाए गए आंतरिक फ़ंक्शन द्वारा कैप्चर किया गया है। फिर इस फ़ंक्शन को प्रत्येक बनाए गए लिंक के लिए एक इवेंट हैंडलर के रूप में असाइन किया जाता है। दोहरे कोष्ठक, (i), एक फ़ंक्शन कॉल संलग्न करते हैं जो तुरंत आंतरिक फ़ंक्शन को आमंत्रित करता है।

इस निर्माण का कारण i के प्रत्येक मान के लिए एक अलग क्लोजर बनाना है। यदि हम केवल आंतरिक फ़ंक्शन को सीधे (दोहरे कोष्ठक के बिना) असाइन करते हैं, तो सभी क्लोजर i वेरिएबल के समान संदर्भ साझा करेंगे।

फ़ंक्शन फ़ैक्टरी दृष्टिकोण

और लूप में क्लोजर का उपयोग करने का सामान्य तरीका फ़ंक्शन फ़ैक्टरी का उपयोग करना है। यह तकनीक प्रत्येक पुनरावृत्ति के लिए एक फ़ंक्शन संदर्भ बनाती है, i का एक अद्वितीय मान कैप्चर करती है:

function generateMyHandler(x) {
    return function() {
        alert(x);
    }
}

for (var i = 0; i 

यह दृष्टिकोण सुनिश्चित करता है कि प्रत्येक ईवेंट हैंडलर के पास x वेरिएबल का अपना उदाहरण है, जो वेरिएबल साझाकरण और असंगत व्यवहार को रोकता है।

निष्कर्ष

समझ जावास्क्रिप्ट प्रोग्रामिंग में उनकी शक्ति का लाभ उठाने के लिए लूप्स को बंद करना आवश्यक है। अद्वितीय क्लोजर बनाकर या फ़ंक्शन फ़ैक्टरी का उपयोग करके, डेवलपर्स जटिल और कुशल कोड संरचनाओं को सक्षम करते हुए, लूप के भीतर विशिष्ट स्थिति बनाए रख सकते हैं।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3