𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝗖𝗼𝗻𝘀𝘁𝗿𝘂𝗰𝘁𝗼𝗿 𝗙𝘂𝗻𝗰𝘁𝗶𝗼𝗻𝘀
Constructor function ऑब्जेक्ट्स के लिए एक ब्लूप्रिंट (blueprint) है। इसका उपयोग एक ही संरचना (structure) वाले कई ऑब्जेक्ट्स बनाने के लिए किया जाता है।
यह कैसे काम करता है:
आप constructor function को कॉल करने के लिए new कीवर्ड का उपयोग करते हैं। यह प्रक्रिया चार काम करती है:
- यह एक खाली ऑब्जेक्ट बनाता है।
- यह
thisको उस नए ऑब्जेक्ट की ओर पॉइंट करने के लिए सेट करता है। - यह फंक्शन के अंदर के कोड को execute करता है।
- यह नए ऑब्जेक्ट को return करता है।
उदाहरण कोड:
function Employee(name, salary) {
this.name = name;
this.salary = salary;
}
const emp1 = new Employee("Saravanan", 50000);
पालन करने योग्य नियम:
- फंक्शन के नाम को कैपिटल लेटर (capital letter) से शुरू करें।
- नए ऑब्जेक्ट को प्रॉपर्टीज़ असाइन करने के लिए
thisका उपयोग करें।
this की भूमिका:
एक constructor के अंदर, this उस विशिष्ट ऑब्जेक्ट को संदर्भित (refer) करता है जिसे आप बना रहे हैं। उदाहरण के लिए, this.name = name पैरामीटर वैल्यू को ऑब्जेक्ट प्रॉपर्टी में असाइन करता है।
मेथड्स (Methods) जोड़ना:
आप constructor के अंदर फंक्शन जोड़ सकते हैं ताकि हर ऑब्जेक्ट उनका उपयोग कर सके।
function Employee(name, salary) {
this.name = name;
this.salary = salary;
this.displayInfo = function() {
console.log(this.name + " earns " + this.salary);
};
}
मेमोरी दक्षता (Memory efficiency):
यदि आप सीधे constructor में मेथड्स जोड़ते हैं, तो प्रत्येक ऑब्जेक्ट को अपनी अलग कॉपी मिलती है। इससे अधिक मेमोरी का उपयोग होता है।
इसके बजाय, prototype का उपयोग करें। Prototype में मेथड जोड़ने से सभी ऑब्जेक्ट्स के बीच एक ही कॉपी साझा (share) होती है।
Employee.prototype.greet = function() {
console.log("Hello " + this.name);
};
सारांश:
- एक सिंगल ऑब्जेक्ट के लिए object literals का उपयोग करें।
- एक ही संरचना वाले कई ऑब्जेक्ट्स के लिए constructor functions का उपयोग करें।
स्रोत: https://www.w3schools.com/js/js_object_constructors.asp स्रोत: https://www.geeksforgeeks.org/javascript/javascript-function-constructor/ स्रोत: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function
पोस्ट लिंक: https://dev.to/dev_saravanan_journey/javascript-constructor-functions-k6k