यह जावास्क्रिप्ट में

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

वैश्विक निष्पादन संदर्भ में, यह मान विंडो ऑब्जेक्ट के बराबर है। यह जावास्क्रिप्ट में सख्त और गैर-सख्त मोड के लिए समान है।

हालांकि, किसी फ़ंक्शन के निष्पादन संदर्भ के लिए, इस कीवर्ड का मान इस बात पर निर्भर करता है कि फ़ंक्शन कैसे लागू किया जाता है। जावास्क्रिप्ट में एक फ़ंक्शन को 4 अलग-अलग तरीकों से लागू किया जा सकता है।

विधि 1: सामान्य कार्य आमंत्रण

इस परिदृश्य में, यह मान वैश्विक वस्तु के बराबर होता है, जो कि ब्राउज़र में विंडो है, और NodeJS का उपयोग करते समय वैश्विक है ।

हालांकि, अगर हम सख्त मोड का उपयोग करते हैं तो कंसोल में अपरिभाषित लॉग होता है। किसी फ़ाइल या फ़ंक्शन की शुरुआत में निर्देश रखकर सख्त मोड सक्षम किया जाता है ।"use strict"

विधि 2: विधि आमंत्रण

जब किसी ऑब्जेक्ट की विधि को कॉल किया जाता है, तो यह उस ऑब्जेक्ट के बराबर होता है जो विधि का स्वामी होता है। नीचे दिए गए उदाहरण में, यह मान उस ऑब्जेक्ट के बराबर होता है जिसका उपयोग इसे लागू करने के लिए किया जाता है, obj ।

विधि 3: अप्रत्यक्ष आमंत्रण

जावास्क्रिप्ट में कार्य वस्तुओं की तरह हैं। उन्हें विशेष रूप से कॉल करने योग्य ऑब्जेक्ट कहा जाता है । फ़ंक्शंस में इन दो विधियों को उनके प्रोटोटाइप में परिभाषित किया गया है; कॉल करें और आवेदन करें । इन विधियों का उपयोग करके, हम इसका मान निर्धारित कर सकते हैं । जब कॉल और लागू विधियों का उपयोग करके फ़ंक्शन को लागू किया जाता है , तो यह मान इन कार्यों को प्रदान किए गए पहले तर्क के बराबर होता है। नीचे दिए गए उदाहरण में, यह दोनों मामलों के लिए ऑब्जेक्ट, obj के बराबर है ।

विधि 4: कंस्ट्रक्टर आमंत्रण

जब नए कीवर्ड के साथ एक कंस्ट्रक्टर फ़ंक्शन को लागू किया जाता है, तो उस स्थिति में, यह मान नए बनाए गए इंस्टेंस के बराबर होता है ।

एरो फ़ंक्शंस में यह

यह कीवर्ड नियमित कार्यों की तुलना में तीर कार्यों में बहुत अलग व्यवहार करता है । एरो फ़ंक्शंस का अपना निष्पादन संदर्भ नहीं होता है। व्यावहारिक रूप से, यह बाहरी संलग्न कार्य या संदर्भ से विरासत में मिला है। उदाहरण के लिए,

उपरोक्त उदाहरण में, यह वैश्विक निष्पादन संदर्भ से विरासत में मिला है। यह मान ब्राउज़र में वैश्विक निष्पादन संदर्भ में विंडो ऑब्जेक्ट के बराबर होता है । आइए एक और उदाहरण देखें।

अब तक, हमने स्थापित किया है कि तीर कार्यों का अपना निष्पादन संदर्भ नहीं है। इस प्रकार, उपरोक्त उदाहरण में, यह मान संलग्न संदर्भ के बराबर है, जो वैश्विक निष्पादन संदर्भ है। नतीजतन, यह मान विंडो ऑब्जेक्ट के बराबर है। विंडो ऑब्जेक्ट में कोई नाम संपत्ति नहीं है, जिससे उपरोक्त उदाहरण में आउटपुट अपरिभाषित हो जाता है।

बाध्यकारी मुद्दों को ठीक करना

इस उदाहरण पर विचार करें,

हम आउटपुट के रूप में अपरिभाषित क्यों हो रहे हैं ? पता चला कि हमने इस बंधन को obj ऑब्जेक्ट से खो दिया है। ध्यान दें कि लाइन 8 पर , हम प्रिंटनाम फ़ंक्शन को लागू नहीं कर रहे हैं । हम इसके संदर्भ को बाद में उपयोग करने के लिए एक चर में संग्रहीत कर रहे हैं। किसी फ़ंक्शन को आमंत्रित करना और उसके संदर्भ को एक चर में संग्रहीत करना दो अलग-अलग चीजें हैं। इसलिए जब हम लाइन 9 पर फ़ंक्शन का आह्वान करते हैं , तो हम आउटपुट के रूप में अपरिभाषित हो जाते हैं। चूंकि ऑब्जेक्ट निर्दिष्ट नहीं है, यह obj ऑब्जेक्ट के लिए बाध्यकारी खो गया है। इसके लिए अग्रणी वैश्विक वस्तु के बराबर है । चूंकि कोई नाम नहीं हैवैश्विक वस्तु में संपत्ति, हम कंसोल पर अपरिभाषित हो जाते हैं।

हम प्रिंटनाम फ़ंक्शन के इस बंधन को कैसे संरक्षित कर सकते हैं , जैसे कि इसका मूल्य हमेशा ओब्ज ऑब्जेक्ट होता है, जब भी या जहां भी हम प्रिंटनाम फ़ंक्शन का आह्वान करते हैं?

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

बाइंड विधि प्रिंटनाम फ़ंक्शन के इस बाइंडिंग को obj ऑब्जेक्ट पर ठीक करती है।

मुझे आशा है कि आपको यह पोस्ट मददगार लगी होगी। पढ़ने के लिए धन्यवाद। :)

आइए जुड़ें:
लिंक्डइन
ट्विटर

Suggested posts

खतरनाक बातचीत

खतरनाक बातचीत

अगर हम इस ग्रह पर फलना-फूलना जारी रखना चाहते हैं, तो हमें खतरनाक बातचीत करनी होगी। वे जो चुनौती देते हैं कि हमने क्या किया है, हम क्या कर रहे हैं, और वर्तमान में हम क्या करना जारी रखने के लिए तैयार हैं (या करने की योजना बना रहे हैं)।

हाई होने की एक बच्चे की पहली किताब

हाई होने की एक बच्चे की पहली किताब

(चेतावनी- यह व्यंग्य है, उल्लासपूर्वक विध्वंसक होने का इरादा है- निश्चित रूप से बच्चों के लिए नहीं) आपने अपने माँ और पिताजी को रसोई में छिपकर उन बदबूदार सिगरेटों को धूम्रपान करते देखा है। वे आपको बताते हैं।

Related posts

केवल एक फ़ोन नंबर से किसी को भी ट्रैक करें | OSINT जांच

केवल एक फ़ोन नंबर से किसी को भी ट्रैक करें | OSINT जांच

आप एक OSINT अन्वेषक, CTF प्लेयर या कोई ऐसा व्यक्ति हो सकते हैं जिसे स्पैम कॉल्स आ रही हों। कोई व्यक्ति जो आपके द्वारा किसी विज्ञापन में देखे गए नंबर को सत्यापित करने का प्रयास कर रहा है।

द थ्रेट आर्काइव: वॉल्यूम 7 ब्लैक बस्ता

द थ्रेट आर्काइव: वॉल्यूम 7 ब्लैक बस्ता

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

डोमेन नाम के बारे में जानकारी ढूँढना

ब्रायन पी. होगन द्वारा स्मॉल, शार्प सॉफ्टवेयर टूल्स का एक अंश

डोमेन नाम के बारे में जानकारी ढूँढना

जब आप facebook.com से अनुरोध करते हैं, तो आपका कंप्यूटर उस डोमेन नाम को IP पते में अनुवादित करने के लिए डोमेन नाम खोजता है ताकि आपका कंप्यूटर वह कनेक्शन बना सके।

द स्लो इरोसियन: अनवीलिंग द वे तरीके पीपल वेस्ट अवे अवे करियर

द स्लो इरोसियन: अनवीलिंग द वे तरीके पीपल वेस्ट अवे अवे करियर

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