JavaScript मध्ये फंक्शन इनव्होकेशन पद्धती
JavaScript मध्ये, फंक्शन्स विविध प्रकारे चालवल्या जाऊ शकतात आणि दोन सामान्यतः वापरल्या जाणाऱ्या पद्धती म्हणजे `कॉल` आणि `लागू`. या पद्धती तुम्हाला संदर्भ (`हे` मूल्य) नियंत्रित करण्यास अनुमती देतात ज्यामध्ये फंक्शन कार्यान्वित केले जाते. कार्यक्षम आणि प्रभावी JavaScript कोड लिहिण्यासाठी `कॉल` आणि `अप्लाय` मधील फरक समजून घेणे महत्त्वाचे आहे.
हा लेख फंक्शन सुरू करताना `Function.prototype.call()` आणि `Function.prototype.apply()` मधील फरक एक्सप्लोर करतो. आम्ही त्यांची वाक्यरचना, वापर प्रकरणे आणि संभाव्य कार्यप्रदर्शन फरक तपासू. या लेखाच्या शेवटी, तुम्हाला `अप्लाय` वर `कॉल` कधी वापरायचे आणि त्याउलट हे स्पष्ट समजेल.
आज्ञा | वर्णन |
---|---|
Function.prototype.call() | दिलेले हे मूल्य आणि वैयक्तिकरित्या प्रदान केलेले वितर्क असलेले फंक्शन कॉल करते. |
Function.prototype.apply() | दिलेल्या या मूल्यासह फंक्शन कॉल करते आणि ॲरे म्हणून प्रदान केलेले वितर्क. |
this | डायनॅमिक संदर्भ असाइनमेंटला अनुमती देऊन फंक्शन ज्या ऑब्जेक्टवरून कॉल केले होते त्याचा संदर्भ देते. |
console.log() | डिबगिंग हेतूंसाठी कन्सोलवर संदेश किंवा चल मुद्रित करते. |
res.writeHead() | Node.js सर्व्हरमध्ये HTTP स्थिती कोड आणि प्रतिसाद शीर्षलेख सेट करते. |
res.end() | Node.js सर्व्हरमधील प्रतिसाद प्रक्रिया समाप्त करते, सर्व डेटा पाठविला गेला असल्याचे संकेत देते. |
http.createServer() | येणाऱ्या विनंत्या ऐकून, Node.js मध्ये HTTP सर्व्हर उदाहरण तयार करते. |
listen() | HTTP सर्व्हर सुरू करतो, त्यास निर्दिष्ट पोर्टवर ऐकण्याची परवानगी देतो. |
कॉलचा वापर समजून घेणे आणि JavaScript मध्ये अर्ज करणे
प्रदान केलेल्या स्क्रिप्ट वापरण्यातील फरक स्पष्ट करतात Function.prototype.call() आणि १ JavaScript मध्ये. निर्दिष्ट केलेल्या फंक्शन्ससाठी दोन्ही पद्धती वापरल्या जातात this संदर्भ पहिल्या उदाहरणात, द call() ची विनंती करण्यासाठी पद्धत वापरली जाते fullName विविध वस्तूंवर पद्धत (५ आणि person2), प्रत्येक ऑब्जेक्टचे गुणधर्म वैयक्तिक वितर्क म्हणून पास करणे. जेव्हा युक्तिवादांची संख्या ज्ञात आणि निश्चित असते तेव्हा ही पद्धत संक्षिप्त वाक्यरचना करण्यास अनुमती देते. दुसरे उदाहरण वापर दर्शवते ७ पद्धत, जी समान आहे call() परंतु वैयक्तिक विषयांऐवजी वितर्कांची श्रेणी घेते. ही लवचिकता विशेषतः उपयोगी असते जेव्हा वितर्कांची संख्या व्हेरिएबल असते किंवा ॲरे स्त्रोताकडून येते.
Node.js बॅकएंड उदाहरणामध्ये, द call() सह तयार केलेल्या HTTP सर्व्हरमध्ये पद्धत वापरली जाते http.createServer(). हे उदाहरण कसे हायलाइट करते this HTTP विनंत्यांना डायनॅमिकपणे प्रतिसाद देण्यासाठी सर्व्हर-साइड JavaScript मध्ये संदर्भ हाताळले जाऊ शकते. सर्व्हर अभिवादनासह प्रतिसाद देतो, कसे ते दाखवून देतो call() पद्धत संदर्भ बदलू शकते greet कार्य शेवटी, एकत्रित फ्रंटएंड आणि बॅकएंड उदाहरण दोन्ही कसे दाखवते call() आणि ७ अधिक डायनॅमिक फंक्शनमध्ये वापरले जाऊ शकते. वापरून call() वैयक्तिक युक्तिवादांसह आणि ७ वितर्कांच्या ॲरेसह, स्क्रिप्ट डायनॅमिकपणे वापरकर्त्याचे तपशील तयार करते, क्लायंट-साइड आणि सर्व्हर-साइड JavaScript डेव्हलपमेंटमध्ये या पद्धतींचे व्यावहारिक अनुप्रयोग स्पष्ट करते.
फंक्शन इनव्होकेशनसाठी जावास्क्रिप्टमध्ये कॉल वापरणे आणि पद्धती लागू करणे
JavaScript Frontend Script
// Example 1: Using Function.prototype.call()
const person = {
fullName: function() {
return this.firstName + " " + this.lastName;
}
};
const person1 = {
firstName: "John",
lastName: "Doe"
};
const person2 = {
firstName: "Jane",
lastName: "Smith"
};
// Call the fullName method on person1 and person2
console.log(person.fullName.call(person1)); // Output: John Doe
console.log(person.fullName.call(person2)); // Output: Jane Smith
लवचिक आर्ग्युमेंट पासिंगसाठी Function.prototype.apply() लागू करणे
JavaScript Frontend Script
१
Node.js बॅकएंड उदाहरण कॉल करून अर्ज करा
Node.js सह JavaScript बॅकएंड स्क्रिप्ट
// Load the required modules
const http = require('http');
// Create a server object
http.createServer((req, res) => {
res.writeHead(200, {'Content-Type': 'text/plain'});
// Example using call()
function greet() {
return 'Hello ' + this.name;
}
const user = { name: 'Alice' };
res.write(greet.call(user)); // Output: Hello Alice
res.end();
}).listen(3000);
console.log('Server running at http://localhost:3000/');
डायनॅमिक फंक्शनसह कॉल आणि अर्ज एकत्र करणे
JavaScript पूर्ण स्टॅक स्क्रिप्ट
// Define a function to display user details
function displayDetails(age, profession) {
return this.name + " is " + age + " years old and works as a " + profession + ".";
}
// User objects
const user1 = { name: 'Bob' };
const user2 = { name: 'Alice' };
// Use call to invoke displayDetails
console.log(displayDetails.call(user1, 30, 'Engineer')); // Output: Bob is 30 years old and works as a Engineer.
// Use apply to invoke displayDetails
console.log(displayDetails.apply(user2, [28, 'Doctor'])); // Output: Alice is 28 years old and works as a Doctor.
JavaScript मध्ये संदर्भ हाताळणी एक्सप्लोर करणे
च्या मूलभूत वापराच्या पलीकडे call() आणि ७, अधिक जटिल आणि शक्तिशाली कोड तयार करण्यासाठी या पद्धती इतर JavaScript वैशिष्ट्यांसह एकत्र केल्या जाऊ शकतात. उदाहरणार्थ, ते सहसा संयोगाने वापरले जातात bind(), जे निर्दिष्ट केलेल्यासह नवीन फंक्शन परत करते this मूल्य. विपरीत call() आणि ७, जे लगेच फंक्शनला आवाहन करते, bind() एक बाउंड फंक्शन तयार करण्यासाठी वापरले जाऊ शकते जे नंतर सुसंगत संदर्भासह कॉल केले जाऊ शकते. हे विशेषतः इव्हेंट हाताळणीमध्ये उपयुक्त आहे, जेथे तुम्ही हे सुनिश्चित करू शकता की फंक्शन एखाद्या विशिष्ट ऑब्जेक्टचा संदर्भ राखून ठेवते तरीही ते वेगवेगळ्या वातावरणात कार्यान्वित केले जाते.
दुसऱ्या प्रगत वापर प्रकरणात एका वस्तूकडून दुसऱ्या वस्तूसह वापरण्यासाठी कर्ज घेण्याच्या पद्धतींचा समावेश होतो. वापरून हे साध्य करता येते call() किंवा ७ तात्पुरती पद्धत वेगळ्या ऑब्जेक्टवर बांधण्यासाठी. उदाहरणार्थ, ॲरे पद्धती जसे २७ किंवा २८ फंक्शन्समधील आर्ग्युमेंट्स ऑब्जेक्ट सारख्या ॲरे सारख्या ऑब्जेक्टवर कर्ज घेतले आणि लागू केले जाऊ शकते. हे तंत्र कोडची अधिक लवचिकता आणि पुन: वापरता येण्यास अनुमती देते, कारण ते डुप्लिकेशनशिवाय विविध ऑब्जेक्ट्समध्ये सामायिक करण्याच्या पद्धती सक्षम करते.
JavaScript मध्ये कॉल आणि अर्ज करण्याबद्दल सामान्य प्रश्न
- दरम्यान मुख्य फरक काय आहे call() आणि ७?
- मुख्य फरक हा आहे call() वितर्कांची सूची स्वीकारते, तर ७ युक्तिवादांची श्रेणी स्वीकारते.
- कधी वापरावे ७ प्रती call()?
- आपण वापरावे ७ जेव्हा तुमच्याकडे वितर्कांची ॲरे असते किंवा फंक्शनला वितर्कांची व्हेरिएबल संख्या पास करायची असते.
- दरम्यान कामगिरी फरक आहेत call() आणि ७?
- साधारणपणे, दरम्यान कोणतेही महत्त्वपूर्ण कार्यप्रदर्शन फरक नाहीत call() आणि ७. कोणतेही फरक सहसा नगण्य असतात.
- करू शकतो ७ गणित पद्धती वापरता येतील का?
- होय, ७ यांसारख्या गणित पद्धतींमध्ये संख्यांचा ॲरे पास करण्यासाठी वापरला जाऊ शकतो Math.max() किंवा ४३.
- काय आहे ४४?
- bind() एक नवीन फंक्शन तयार करते ज्याला कॉल केल्यावर, त्याचे असते this नवीन फंक्शन कॉल केल्यावर प्रदान केलेल्या कोणत्याही आधीच्या वितर्कांच्या दिलेल्या क्रमासह, प्रदान केलेल्या मूल्यावर कीवर्ड सेट केला आहे.
- कसं शक्य आहे call() पद्धती कर्ज घेण्यासाठी वापरल्या जाऊ शकतात?
- तुम्ही वापरू शकता call() फंक्शनची कॉपी न करता पद्धत पुन्हा वापरण्यास अनुमती देऊन, एका ऑब्जेक्टकडून पद्धती उधार घेणे आणि दुसऱ्या ऑब्जेक्टवर त्यांचा वापर करणे.
- वापरणे शक्य आहे का call() किंवा ७ कन्स्ट्रक्टरसह?
- नाही, कन्स्ट्रक्टर्सना थेट बोलावले जाऊ शकत नाही call() किंवा ७. त्याऐवजी, आपण वापरू शकता ५३ वारसा नमुन्यांसाठी.
- ॲरे सारख्या वस्तू काय आहेत आणि कसे करतात call() आणि ७ त्यांच्याबरोबर काम करा?
- ॲरे-सदृश वस्तू म्हणजे लांबी गुणधर्म आणि अनुक्रमित घटक असलेल्या वस्तू. call() आणि ७ या वस्तू ॲरे असल्याप्रमाणे हाताळण्यासाठी वापरल्या जाऊ शकतात.
जावास्क्रिप्टमध्ये कॉल आणि अर्जाच्या वापराचा सारांश
JavaScript मध्ये, call() आणि ७ नियंत्रित करण्यासाठी आवश्यक आहेत this फंक्शन्समधील संदर्भ. call() ज्ञात आणि निश्चित युक्तिवादांसाठी योग्य बनवून वैयक्तिक युक्तिवाद पास करण्यास अनुमती देते. याउलट, ७ व्हेरिएबल आर्ग्युमेंट लिस्टसाठी लवचिकता प्रदान करून वितर्कांची श्रेणी घेते. दोन्ही पद्धती कोड रीयुजेबिलिटी आणि डायनॅमिक फंक्शन इनव्होकेशन वाढवतात, मग ते फ्रंटएंड डेव्हलपमेंट असो किंवा Node.js वातावरणात. स्वच्छ, कार्यक्षम JavaScript कोड लिहिण्यासाठी या पद्धती प्रभावीपणे केव्हा आणि कशा वापरायच्या हे समजून घेणे महत्त्वाचे आहे.