जावास्क्रिप्ट के साथ काम करते समय, आपको तीन शक्तिशाली तरीके मिल सकते हैं: कॉल, अप्लाई और बाइंड। इन विधियों का उपयोग फ़ंक्शंस में इसके मूल्य को नियंत्रित करने के लिए किया जाता है, जिससे वस्तुओं के साथ काम करना आसान हो जाता है। आइए प्रत्येक विधि को सरल उदाहरणों से तोड़कर समझें कि वे कैसे काम करती हैं।
कॉल विधि आपको एक विशिष्ट मान के साथ एक फ़ंक्शन शुरू करने और एक-एक करके तर्क पारित करने की अनुमति देती है।
const person = { name: 'Alice', greet: function(greeting) { console.log(`${greeting}, my name is ${this.name}`); } }; const anotherPerson = { name: 'Bob' }; person.greet.call(anotherPerson, 'Hello'); // Output: "Hello, my name is Bob"
इस उदाहरण में, कॉल इस मान को एक व्यक्ति से दूसरे व्यक्ति में बदल देती है, इसलिए ग्रीट फ़ंक्शन "हैलो, मेरा नाम बॉब है" प्रिंट करता है।
लागू विधि कॉल के समान है, लेकिन यह एक-एक करके तर्कों को एक सरणी के रूप में लेती है।
const person = { name: 'Alice', greet: function(greeting, punctuation) { console.log(`${greeting}, my name is ${this.name}${punctuation}`); } }; const anotherPerson = { name: 'Charlie' }; person.greet.apply(anotherPerson, ['Hi', '!']); // Output: "Hi, my name is Charlie!"
यहाँ, apply इस मान को दूसरे व्यक्ति में भी बदल देता है और आपको एक सरणी के रूप में कई तर्क पारित करने की अनुमति देता है।
बाइंड विधि फ़ंक्शन को तुरंत कॉल नहीं करती है। इसके बजाय, यह इस मान के साथ एक नया फ़ंक्शन लौटाता है जिसे आप बाद में कॉल कर सकते हैं।
const person = { name: 'Alice', greet: function() { console.log(`Hi, my name is ${this.name}`); } }; const anotherPerson = { name: 'Diana' }; const greetDiana = person.greet.bind(anotherPerson); greetDiana(); // Output: "Hi, my name is Diana"
इस उदाहरण में, बाइंड एक नया फ़ंक्शन ग्रीटिंगडायना बनाता है, जो किसी अन्य व्यक्ति से जुड़ा होता है। जब आप greetDiana को कॉल करते हैं, तो यह प्रिंट होता है "हाय, मेरा नाम डायना है"।
ये विधियां तब उपयोगी होती हैं जब आपको किसी अन्य वस्तु के साथ उपयोग करने के लिए एक वस्तु से विधियां उधार लेने की आवश्यकता होती है या जब आप अपने कार्यों में इस मूल्य पर अधिक नियंत्रण चाहते हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3