इसे जावास्क्रिप्ट करें

इस ट्यूटोरियल में, आप उदाहरणों की मदद से जावास्क्रिप्ट के कीवर्ड के बारे में जानेंगे।

जावास्क्रिप्ट में, thisकीवर्ड उस ऑब्जेक्ट को संदर्भित करता है जहां इसे कहा जाता है।

1. यह इनसाइड ग्लोबल स्कोप

जब thisअकेले उपयोग किया जाता है, thisतो वैश्विक ऑब्जेक्ट ( windowब्राउज़र में ऑब्जेक्ट) को संदर्भित करता है । उदाहरण के लिए,

 let a = this; console.log(a); // Window () this.name = 'Sarah'; console.log(window.name); // Sarah

यहाँ, के this.nameरूप में ही है window.name

2. इस अंदर समारोह

जब thisकिसी फ़ंक्शन में उपयोग किया जाता है, thisतो वैश्विक ऑब्जेक्ट ( windowब्राउज़र में ऑब्जेक्ट) को संदर्भित करता है । उदाहरण के लिए,

 function greet() ( // this inside function // this refers to the global object console.log(this); ) greet(); // Window ()

3. यह इनसाइड कंस्ट्रक्टर फंक्शन

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

 function Person() ( this.name = 'Jack'; console.log(this); ) let person1 = new Person(); console.log(person1.name);

आउटपुट

 व्यक्ति (नाम: "जैक") जैक

यहाँ, thisव्यक्ति 1 वस्तु को संदर्भित करता है। इसीलिए, person1.nameहमें जैक देता है।

नोट : जब thisES6 कक्षाओं के साथ प्रयोग किया जाता है, तो यह उस वस्तु को संदर्भित करता है जिसके अंदर इसका उपयोग किया जाता है (निर्माण कार्यों के समान)।

4. यह इनसाइड ऑब्जेक्ट विधि

जब thisकिसी वस्तु की विधि के अंदर प्रयोग किया जाता है, तो thisवह उस वस्तु को संदर्भित करता है जो उसके भीतर है। उदाहरण के लिए,

 const person = ( name : 'Jack', age: 25, // this inside method // this refers to the object itself greet() ( console.log(this); console.log(this.name); ) ) person.greet();

आउटपुट

 (नाम: "जैक", आयु: 25, अभिवादन:।) जैक

उपरोक्त उदाहरण में, वस्तु thisको संदर्भित करता है person

5. इनसाइड इनर फंक्शन

जब आप thisकिसी आंतरिक फ़ंक्शन (किसी विधि के अंदर) तक thisपहुंचते हैं , तो वैश्विक ऑब्जेक्ट को संदर्भित करता है। उदाहरण के लिए,

 const person = ( name : 'Jack', age: 25, // this inside method // this refers to the object itself greet() ( console.log(this); // (name: "Jack", age… ) console.log(this.age); // 25 // inner function function innerFunc() ( // this refers to the global object console.log(this); // Window (… ) console.log(this.age); // undefined ) innerFunc(); ) ) person.greet();

आउटपुट

 (नाम: "जैक", आयु: 25, अभिवादन: Window) 25 खिड़की (…) अपरिभाषित

यहाँ, thisअंदर वैश्विक वस्तुinnerFunc() को संदर्भित करता है क्योंकि एक विधि के अंदर है।innerFunc()

हालाँकि, this.ageबाहर वस्तु innerFunc()को संदर्भित करता है person

6. यह इनसाइड एरो फंक्शन

एरो फंक्शन के अंदर, thisपेरेंट स्कोप को संदर्भित करता है। उदाहरण के लिए,

 const greet = () => ( console.log(this); ) greet(); // Window (… )

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

 const greet = ( name: 'Jack', // method sayHi () ( let hi = () => console.log(this.name); hi(); ) ) greet.sayHi(); // Jack

यहां, फ़ंक्शन के this.nameअंदर ऑब्जेक्ट hi()को संदर्भित करता है greet

आप undefinedकिसी फ़ंक्शन का उपयोग करते समय होने वाली समस्या को हल करने के लिए तीर फ़ंक्शन का उपयोग कर सकते हैं (जैसा कि उदाहरण 5 में देखा गया है)। उदाहरण के लिए,

 const person = ( name : 'Jack', age: 25, // this inside method // this refers to the object itself greet() ( console.log(this); console.log(this.age); // inner function let innerFunc = () => ( // this refers to the global object console.log(this); console.log(this.age); ) innerFunc(); ) ) person.greet();

आउटपुट

 (नाम: "जैक", आयु: 25, अभिवादन: () 25 (नाम: "जैक", आयु: 25, अभिवादन: ") 25

यहां, innerFunc()तीर फ़ंक्शन का उपयोग करके परिभाषित किया गया है। यह thisअपने मूल दायरे से लेता है। इसलिए, 25this.age देता है ।

जब तीर फ़ंक्शन का उपयोग किया जाता है this, तो यह बाहरी क्षेत्र को संदर्भित करता है।

7. यह सख्त मोड के साथ अंदर का कार्य

जब thisसख्त मोड के साथ एक फ़ंक्शन में उपयोग किया जाता है, thisहै undefined। उदाहरण के लिए,

 'use strict'; this.name = 'Jack'; function greet() ( // this refers to undefined console.log(this); ) greet(); // undefined

नोट : thisसख्त मोड के साथ किसी फ़ंक्शन का उपयोग करते समय , आप जावास्क्रिप्ट फ़ंक्शन कॉल () का उपयोग कर सकते हैं।

उदाहरण के लिए,

 'use strict'; this.name = 'Jack'; function greet() ( console.log(this.name); ) greet.call(this); // Jack

जब आप फ़ंक्शन के thisसाथ गुजरते हैं call(), greet()तो thisऑब्जेक्ट की विधि (इस मामले में वैश्विक ऑब्जेक्ट) के रूप में माना जाता है ।

दिलचस्प लेख...