जावास्क्रिप्ट में कक्षा विधियों के भीतर "इस" के व्यवहार को समझना
जावास्क्रिप्ट में, "यह" की अवधारणा यह समझने के लिए महत्वपूर्ण है कि वर्ग परिभाषाओं के भीतर विधियां कैसे संचालित होती हैं। इस विषय में गहराई से जाने के लिए, आइए इस कथन का विश्लेषण करें कि "यह" क्लास विधियों को लागू करते समय बनाई जा रही वस्तु के बजाय इनवोकर क्लास को संदर्भित करता है।
आह्वान पैटर्न और "यह" बाइंडिंग
इन जावास्क्रिप्ट, फ़ंक्शंस को लागू करने के चार अलग-अलग तरीके हैं, जिनमें से प्रत्येक यह निर्धारित करता है कि "यह" कैसे बाध्य है:
- विधि मंगलाचरण: जब किसी फ़ंक्शन को किसी ऑब्जेक्ट की विधि के रूप में बुलाया जाता है, तो "यह" उस ऑब्जेक्ट से जुड़ा होता है।
- फ़ंक्शन मंगलाचरण: स्टैंड-अलोन फ़ंक्शन मंगलाचरण में, "यह" " वैश्विक ऑब्जेक्ट (आमतौर पर ब्राउज़र में "विंडो" ऑब्जेक्ट) से जुड़ा होता है।
- कंस्ट्रक्टर इनवोकेशन: फ़ंक्शन "नए" कीवर्ड का उपयोग करके लागू किए गए को कंस्ट्रक्टर इनवोकेशन माना जाता है। इस मामले में, "यह" एक नव निर्मित ऑब्जेक्ट से जुड़ा हुआ है। वस्तु शाब्दिक संकेतन का उपयोग करना। इन वस्तुओं के भीतर, "यह" सूचक का उपयोग किया जाता है। आपके द्वारा देखा गया व्यवहार संभवतः ऑनरेंडर विधि के इनवोकेशन पैटर्न से उत्पन्न होता है। वांछित व्यवहार है. हालाँकि, यदि ऑनरेंडर को अनजाने में क्लास इंस्टेंस के संदर्भ के बाहर एक फ़ंक्शन (फ़ंक्शन इनवोकेशन) के रूप में लागू किया जाता है, तो "यह" इच्छित क्लास इंस्टेंस के बजाय वैश्विक ऑब्जेक्ट से जुड़ जाएगा। इससे अप्रत्याशित व्यवहार हो सकता है।
"इस" व्यवहार का कारण
इनवॉकर ऑब्जेक्ट या फ़ंक्शन के लिए "इस" का बंधन जावास्क्रिप्ट के डिज़ाइन का एक मूलभूत पहलू है। यह गतिशील और लचीले कोड के निर्माण की अनुमति देता है जहां "इस" के संदर्भ को आह्वान पैटर्न के आधार पर हेरफेर किया जा सकता है।
निष्कर्ष
वर्ग विधियों के भीतर "इस" का व्यवहार एक है जावास्क्रिप्ट के फ़ंक्शन मंगलाचरण पैटर्न का परिणाम। यह समझकर कि "यह" विभिन्न परिदृश्यों में कैसे बंधा हुआ है, आप उस संदर्भ को नियंत्रित कर सकते हैं जिसमें आपका कोड संचालित होता है और संभावित भ्रम से बच सकते हैं।