JavaScript में Factory Functions और Constructor Functions

एक-एक करके ऑब्जेक्ट्स बनाना एक गलती है।

यदि आप प्रत्येक यूजर या क्लासमेट के लिए मैन्युअल रूप से ऑब्जेक्ट लिखते हैं, तो आप कोड को दोहराते हैं। यदि आपके पास 100 यूजर्स हैं, तो आप एक ही लॉजिक को 100 बार लिखते हैं। इससे बग्स (bugs) पैदा होते हैं। आप बाद में गलती से किसी प्रॉपर्टी को बदल सकते हैं और अपने एप्लिकेशन को खराब कर सकते हैं।

क्लीन कोड लिखने के लिए इसके बजाय इन दो पैटर्न्स का उपयोग करें।

  1. Factory Functions

एक असली फैक्ट्री के बारे में सोचें। कच्चा माल अंदर जाता है और एक तैयार उत्पाद बाहर आता है।

एक factory function पैरामीटर्स लेता है और एक नया ऑब्जेक्ट रिटर्न करता है।

Example:

function classFactory(name) {
    return {
        reply() {
            return `${name} is present`
        }
    }
}

इसके लाभ:

  1. Constructor Functions

Constructor functions भी ऑब्जेक्ट्स बनाते हैं। वे "new" कीवर्ड और "this" कीवर्ड का उपयोग करते हैं। कन्वेंशन (convention) के अनुसार, आप इन्हें कैपिटल लेटर से शुरू करते हैं।

Example:

function Classmate(name) {
    this.name = name
    this.reply = function() {
        return `${this.name} is present`
    }
}

जब आप "new" का उपयोग करते हैं, तो JavaScript आपके लिए काम कर देता है:

आपको "return" स्टेटमेंट की आवश्यकता नहीं है।

अपने कोड को स्केल करना (Scaling your code)

आप बड़ी मात्रा में डेटा को संभालने के लिए इन पैटर्न्स को arrays के साथ जोड़ सकते हैं। हर नाम को टाइप करने के बजाय, एक map फंक्शन का उपयोग करें।

Example:

const names = ['Kali', 'Andrew', 'Pearl', 'Percy']
const classmates = names.map(name => new Classmate(name))

अब आपके पास उपयोग के लिए ऑब्जेक्ट्स की एक लिस्ट तैयार है।

सारांश:

स्रोत: https://dev.to/pearlodi/factory-functions-and-constructor-functions-in-javascript-lmb