जावास्क्रिप्ट थिस कीवर्ड
- पिछला पृष्ठ JS स्ट्रिक्ट मोड
- अगला पृष्ठ JS एरो फ़ंक्शन
इंस्टांस
var person = { firstName: "Bill", lastName : "Gates", id : 678, fullName : function() { return this.firstName + " " + this.lastName; } };
this क्या है?
JavaScript this
इसका अर्थ है इसका मालिक ऑब्जेक्ट
यह अलग-अलग मूल्य रखता है, जो इसके इस्तेमाल स्थान पर निर्भर करता है:
- विधा में
this
इसका अर्थ है मालिक ऑब्जेक्ट - अकेले में
this
इसका अर्थ है विश्व ऑब्जेक्ट - फ़ंक्शन में
this
इसका अर्थ है विश्व ऑब्जेक्ट - फ़ंक्शन में, सख्त मोड में
this
अनिर्दिष्ट है - इवेंट में
this
इसका अर्थ है इवेंट को प्राप्त करने वाला एलीमेंट
जैसे call()
और apply()
इस तरह की विधाएं this को किसी भी ऑब्जेक्ट पर बांध सकती हैं。
विधा में this
ऑब्जेक्ट विधा मेंthis
इस विधा का "मालिक" है
इस पृष्ठ के शीर्ष प्रयोग मेंthis
इसका अर्थ है person ऑब्जेक्ट
person ऑब्जेक्ट fullName विधा का मालिक है
fullName : function() { return this.firstName + " " + this.lastName; }
अकेले this
अकेले इस्तेमाल करते समय, मालिक विश्व ऑब्जेक्ट है, इसलिए this
इसका अर्थ है विश्व ऑब्जेक्ट
ब्राउज़र विंडो में, विश्व ऑब्जेक्ट [object Window]
:
इंस्टांस
var x = this;
सख्त मोड में, अकेले इस्तेमाल किए जाने पर this
विश्व ऑब्जेक्ट को कहता है [object Window]
:
इंस्टांस
"use strict"; var x = this;
फ़ंक्शन में this (डिफ़ॉल्ट)
JavaScript फ़ंक्शन में, फ़ंक्शन का मालिक डिफ़ॉल्ट बांधन करता है this
。
फ़ंक्शन मेंthis
विश्व ऑब्जेक्ट को कहता है [object Window]
。
इंस्टांस
function myFunction() { return this; }
फ़ंक्शन में this (सख्त मोड)
JavaScript सख्त मोड में डिफ़ॉल्ट बांधन की अनुमति नहीं देता है。
इसलिए, फ़ंक्शन में इस्तेमाल करते समय, सख्त मोड मेंthis
अनिर्दिष्ट है (अनिर्दिष्ट है):undefined
})
इंस्टांस
"use strict"; function myFunction() { return this; }
इवेंट हैंडलर में this
HTML इवेंट हैंडलर मेंthis
इसका अर्थ है इस इवेंट को प्राप्त करने वाला HTML एलीमेंट:
इंस्टांस
<button onclick="this.style.display='none'"> मुझे हटाने के लिए क्लिक करें! </button>
ऑब्जेक्ट विधा बांधन
इस उदाहरण में,this
यह person ऑब्जेक्ट है (person ऑब्जेक्ट यह फ़ंक्शन का "मालिक" है):
इंस्टांस
var person = { firstName : "Bill", lastName : "Gates", id : 678, myFunction : function() { return this; } };
इंस्टांस
var person = { firstName: "Bill", lastName : "Gates", id : 678, fullName : function() { return this.firstName + " " + this.lastName; } };
अर्थातthis.firstName इसलिए thisका (person) ऑब्जेक्ट firstName गुण
एक्सप्लिसिट फ़ंक्शन बांधन
call()
और apply()
विधियाँ अभावी जेसेक्रिप्ट विधियाँ हैं。
वे दोनों एक अन्य ऑब्जेक्ट को पारामीटर के रूप में ऑब्जेक्ट विधि को बुलाने के लिए उपयोग किए जा सकते हैं。
आप इस ट्यूटोरियल के बाद इसके बारे में पढ़ सकते हैं call()
और apply()
के बारे में अधिक जानकारी
इस उदाहरण में, जब person2 को एक पारामीटर के रूप में person1.fullName को बुलाया जाता है तो,this
इसे person2 को उठाता है, भले ही यह person1 का विधि है:
इंस्टांस
var person1 = { fullName: function() { return this.firstName + " " + this.lastName; } } var person2 = { firstName:"Bill", lastName: "Gates", } person1.fullName.call(person2); // वापस "Bill Gates" देगा
- पिछला पृष्ठ JS स्ट्रिक्ट मोड
- अगला पृष्ठ JS एरो फ़ंक्शन