JavaScript में Constructors

एक-एक करके ऑब्जेक्ट्स बनाना धीमा है। यदि आपको समान प्रॉपर्टीज वाले दस छात्रों की आवश्यकता है, तो आप बार-बार एक ही कोड लिखकर समय बर्बाद करते हैं।

JavaScript इसे Constructor Functions के माध्यम से हल करता है।

Constructor को एक ब्लूप्रिंट (blueprint) की तरह समझें। घर का ब्लूप्रिंट खुद घर नहीं होता, लेकिन आप इसका उपयोग कई घर बनाने के लिए करते हैं।

यह कैसे काम करता है:

Constructor एक विशेष फंक्शन है। आप इससे ऑब्जेक्ट्स बनाने के लिए new कीवर्ड का उपयोग करते हैं।

Example:

function Student(name, age, city) {
    this.name = name;
    this.age = age;
    this.city = city;
}

const student1 = new Student("John", 21, "Chennai");
const student2 = new Student("David", 22, "Madurai");

इसका उपयोग क्यों करें?

  • यह समय बचाता है।
  • यह कोड के दोहराव को रोकता है।
  • यह आपके डेटा के लिए एक मानक संरचना (standard structure) बनाता है।

this की भूमिका:

Constructor के अंदर, this शब्द उस नए ऑब्जेक्ट को संदर्भित (refer) करता है जिसे आप बना रहे हैं।

यदि कोई शिक्षक कहता है "मेरा क्लासरूम" (my classroom), तो "मेरा" शब्द उस विशिष्ट शिक्षक की ओर इशारा करता है। कोड में, this.name उस विशिष्ट ऑब्जेक्ट के नाम की ओर इशारा करता है जिसे आपने अभी बनाया है।

जब आप new का उपयोग करते हैं तो क्या होता है?

जब आप const emp = new Employee("John", 50000) चलाते हैं, तो चार चरण होते हैं:

  1. JavaScript एक खाली ऑब्जेक्ट बनाता है।
  2. this कीवर्ड उस नए ऑब्जेक्ट की ओर इशारा करता है।
  3. ऑब्जेक्ट में प्रॉपर्टीज जोड़ दी जाती हैं।
  4. ऑब्जेक्ट आपको वापस मिल जाता है (return हो जाता है)।

एक्शन (Actions) जोड़ना:

ऑब्जेक्ट्स केवल डेटा रखने से कहीं अधिक कर सकते हैं। वे एक्शन भी कर सकते हैं। प्रोग्रामिंग में, इन एक्शन्स को 'मेथड्स' (methods) कहा जाता है।

Example:

function Laptop(brand, ram) {
    this.brand = brand;
    this.ram = ram;
    this.showDetails = function() {
        console.log(this.brand, this.ram);
    };
}

Laptop ऑब्जेक्ट अब डेटा और उस डेटा को दिखाने के लिए एक फंक्शन रखता है।

सर्वोत्तम अभ्यास (Best Practices):

  • Constructor के पहले अक्षर को हमेशा कैपिटल (capitalize) रखें। Student का उपयोग करें, student का नहीं। यह अन्य डेवलपर्स को new कीवर्ड का उपयोग करने का संकेत देता है।
  • हमेशा new कीवर्ड का उपयोग करें। यदि आप इसे भूल जाते हैं, तो फंक्शन एक सामान्य फंक्शन की तरह काम करेगा और आपके कोड को खराब कर देगा।

तुलना (Comparison):

Object Literals:

  • एक सिंगल ऑब्जेक्ट के लिए अच्छा है।
  • सरल और तेज़।
  • कोई ब्लूप्रिंट नहीं।

Constructor Functions:

  • कई ऑब्जेक्ट्स के लिए अच्छा है।
  • पुन: प्रयोज्य (Reusable) और व्यवस्थित।
  • ब्लूप्रिंट दृष्टिकोण का उपयोग करता है।

Source: https://www.w3schools.com/js/js_object_constructors.asp Source: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/constructor Full post: https://dev.to/annapoo/constructor-in-javascript-4nbm