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

सबसे अधिक भ्रमित करने वाली चीजों में से एक है जो लोगों को जावास्क्रिप्ट सीखने के दौरान मिलती है वह है "this"कीवर्ड। तो आइए इस लेख में इसके बारे में सब कुछ समझते हैं।

सबसे पहले, आइए समझते हैं कि क्या संदर्भित करता "this"है?

"this" उस ऑब्जेक्ट को संदर्भित करता है जो वर्तमान फ़ंक्शन या कोड के वर्तमान बिट को निष्पादित कर रहा है।

जब हम विभिन्न मामलों से गुजरेंगे तो यह कथन अधिक स्पष्ट होगा।

  1. वैश्विक संदर्भ:

2. समारोह निमंत्रण:

जब thisकीवर्ड किसी फ़ंक्शन के अंदर होता है, तो उसका मान इस बात पर निर्भर करता है कि फ़ंक्शन कैसे कहा जाता है। जब केवल एक फ़ंक्शन को कॉल किया जाता है, thisतो वैश्विक ऑब्जेक्ट पर सेट किया जाता है।

हालाँकि, के strict modeमोड मान में thisवैश्विक ऑब्जेक्ट के लिए सेट नहीं है और है undefined।

क्या है "use strict"?
इसका उपयोग सक्षम करने के लिए strict modeकिया जाता है जिसका उपयोग कुछ कार्यों को होने से रोकने और अपवाद को फेंकने के लिए किया जाता है।

3. एक विधि के रूप में कार्य:

एक विधि क्या है?
जब कार्य किसी वस्तु का गुण होता है तो उसे विधि कहा जाता है ।

इस मामले thisमें उस वस्तु को संदर्भित करता है जो विधि का मालिक है।

हालाँकि, यदि thisकिसी नेस्टेड फ़ंक्शन (किसी फ़ंक्शन के अंदर फ़ंक्शन) के अंदर उपयोग किया जाता है, तो यह वैश्विक संदर्भ को संदर्भित करता है। नीचे दिए गए उदाहरण thisमें वैश्विक वस्तु को इंगित करता है जिसके पास कोई संपत्ति नहीं है nameइसलिए my.nameवह देता है undefined।

इसे ठीक करने का एक तरीका thisदूसरे वेरिएबल में वैल्यू स्टोर करके है ।

4. अंदर निर्माण कार्यों:

एक कंस्ट्रक्टर फ़ंक्शन newकीवर्ड का उपयोग करके बनाया गया है ।

तो, यह वास्तव में कैसे काम करता है?

  • newकीवर्ड एक खाली वस्तु बनाता है।
  • thisइस नव निर्मित वस्तु के लिए कीवर्ड अंक।

एक के अंदर class, यह वर्तमान वस्तु को इंगित करता है।

हालाँकि, नेस्टेड फ़ंक्शन का उपयोग करते समय व्यवहार एक नियमित कार्य के समान होता है।

हालांकि एक बड़ा अंतर है। कक्षाओं के अंदर कोड स्वचालित रूप से "सख्त मोड" में निष्पादित होता है । इसलिए, thisवैश्विक ऑब्जेक्ट की ओर इशारा करने के बजाय कीवर्ड अपरिभाषित है।

6. अंदर तीर कार्य:

एरो फ़ंक्शंस क्या हैं? ES6 में
एरो फ़ंक्शंस पेश किए गए थे। वे पारंपरिक कार्यों के लिए एक विकल्प प्रदान करते हैं और अधिक संक्षिप्त और साफ होते हैं।

एरो फंक्शन में, thisएनक्लोजिंग फंक्शन की ओर इशारा करता है। इसलिए यह भी समस्या है कि हम ऊपर का सामना करना पड़ा नेस्टेड कार्य लिखते समय।

7. बाध्यकारी बाध्यकारी:

उपरोक्त सभी मामले निहितार्थ के थे।

स्पष्ट बंधन तब होता है जब .call(), .apply()या .bind()प्रयोग किया जाता है।

.call()और .apply()एक दूसरे से काफी मिलते जुलते हैं। इसलिए, हम उन्हें एक साथ अध्ययन करने वाले हैं। और फिर हम इसके बारे में अध्ययन करेंगे .bind()।

(ए) .call()और.apply()

दोनों .call()और .apply()के मूल्य के साथ एक समारोह लागू की अनुमति thisएक पैरामीटर के रूप में निर्दिष्ट है और हम भी तर्क है कि समारोह को पारित किया जाना है प्रदान करते हैं। अंतर केवल इतना है कि .call()हम सीधे तर्क पास करते हैं, जबकि .apply()हम एक सरणी के रूप में तर्क पारित करते हैं।

(ख) .bind()

.bind()वास्तव में अलग है। इसके विपरीत .call()और .apply(), .bind()तुरंत फ़ंक्शन को लागू नहीं करता है। यह thisप्रदान किए गए मूल्य के साथ एक नया कार्य करता है।

Suggested posts

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

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

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

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

यूआई डिजाइन में डी-वर्ड और एल-वर्ड। भाषा मामले। जातिवादी मत बनो।

यूआई डिजाइन में डी-वर्ड और एल-वर्ड। भाषा मामले। जातिवादी मत बनो।

हमारी भाषा एक शक्तिशाली उपकरण है जो हमारे विचारों, दृष्टिकोणों और कार्यों को आकार दे सकती है। हानिरहित प्रतीत होने वाले शब्द भी हानिकारक पूर्वाग्रहों और रूढ़ियों को कायम रख सकते हैं।

Related posts

प्रदर्शन ए / बी परीक्षण समाधान अनुकूलित

प्रदर्शन ए / बी परीक्षण समाधान अनुकूलित

एजेंडा: परिचय: टीएल; लेकिन मैं पढ़ सकता हूं: यदि आप पहले से ही ए / बी परीक्षण, क्लाउडफ्रंट और लांबा @ बढ़त के बारे में जानते हैं, तो सीधे ए / बी परीक्षण के साथ एडब्ल्यूएस लैम्बडा @ किनारे पर जाएं। A / B परीक्षण क्या है? ए / बी परीक्षण एक यूएक्स अनुसंधान पद्धति है जो एक वेबसाइट के दो अलग-अलग संस्करणों के उपयोगकर्ताओं की सगाई की तुलना करने पर केंद्रित है।

TableView हेडर के अंदर इमेज को स्केल कैसे करें

TableView हेडर के अंदर इमेज को स्केल कैसे करें

आज AppStore में बहुत सारे ऐप में टेबल व्यू को स्क्रॉल करते हुए टेबल व्यू हेडर में कंटेंट को स्केल करने जैसा व्यवहार होता है। मैं आपको सबसे सरल दृष्टिकोण दिखाऊंगा कि हम इस तरह के व्यवहार को कैसे प्राप्त कर सकते हैं।

डोम हेरफेर क्या है?

डोम हेरफेर क्या है?

जैसा कि मैंने अपने पहले ब्लॉग 'What is DOM?' में वादा किया था। यहाँ 'DOM मैनिप्युलेशन' पर एक ब्लॉग है। इस ब्लॉग में, हम DOM में अधिक गोता लगाएँगे और जानेंगे कि DOM मैनिपुलेशन क्या है और यह कैसे किया जाता है।

एक्शन में Node.js स्ट्रीम

एक्शन में Node.js स्ट्रीम

कभी आपने सोचा है कि Node.js में धाराएँ कैसे काम कर रही हैं? मैंने लिया।