𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 मधील 𝗙𝗮𝗰𝘁𝗼𝗿𝘆 𝗙𝘂𝗻𝗰𝘁𝗶𝗼𝗻𝘀 𝗮𝗻𝗱 𝗖𝗼𝗻𝘀𝘁𝗿𝘂𝗰𝘁𝗼𝗿 𝗙𝘂𝗻𝗰𝘁𝗶𝗼𝗻𝘀
एक-एक करून ऑब्जेक्ट्स (objects) तयार करणे ही एक चूक आहे.
जर तुम्ही प्रत्येक युजर किंवा क्लासमेटसाठी मॅन्युअली ऑब्जेक्ट लिहिला, तर तुम्हाला कोड पुन्हा पुन्हा लिहावा लागतो. जर तुमच्याकडे १०० युजर्स असतील, तर तुम्हाला तीच लॉजिक १०० वेळा लिहावी लागेल. यामुळे बग्स (bugs) येऊ शकतात. तुम्ही चुकून नंतर एखादी प्रॉपर्टी बदलू शकता आणि त्यामुळे तुमचे ॲप्लिकेशन बिघडू शकते.
स्वच्छ कोड लिहिण्यासाठी त्याऐवजी या दोन पॅटर्नचा (patterns) वापर करा.
१. Factory Functions
एका खऱ्या कारखान्याचा विचार करा. त्यात कच्चा माल जातो आणि तयार उत्पादन बाहेर येते.
Factory function पॅरामीटर्स घेते आणि एक नवीन ऑब्जेक्ट रिटर्न करते.
Example:
function classFactory(name) {
return {
reply() {
return `${name} is present`
}
}
}
फायदे:
- तुम्ही लॉजिक एकदाच लिहिता.
- तुम्ही प्रत्येक नवीन ऑब्जेक्टसाठी फंक्शनचा पुन्हा वापर करू शकता.
- डेटा सुरक्षित राहतो. 'name' हे फंक्शन स्कोपच्या (function scope) आत राहते. तुम्ही बाहेरून चुकून ते ओव्हरराईट (overwrite) करू शकत नाही.
२. Constructor Functions
Constructor functions देखील ऑब्जेक्ट्स तयार करतात. ते "new" कीवर्ड आणि "this" कीवर्डचा वापर करतात. नियमानुसार (convention), तुम्ही यांची सुरुवात कॅपिटल लेटरने करता.
Example:
function Classmate(name) {
this.name = name
this.reply = function() {
return `${this.name} is present`
}
}
जेव्हा तुम्ही "new" वापरता, तेव्हा JavaScript तुमच्यासाठी काम करते:
- ते एक नवीन ऑब्जेक्ट तयार करते.
- ते त्याला "this" ला असाइन करते.
- ते आपोआप ऑब्जेक्ट रिटर्न करते.
तुम्हाला "return" स्टेटमेंटची गरज नसते.
तुमचा कोड स्केल करणे (Scaling your code)
मोठ्या प्रमाणात डेटा हाताळण्यासाठी तुम्ही हे पॅटर्न arrays सोबत जोडू शकता. प्रत्येक नाव टाईप करण्याऐवजी, map फंक्शन वापरा.
Example:
const names = ['Kali', 'Andrew', 'Pearl', 'Percy']
const classmates = names.map(name => new Classmate(name))
आता तुमच्याकडे वापरण्यासाठी ऑब्जेक्ट्सची एक लिस्ट तयार आहे.
सारांश:
- पुनरावृत्ती टाळण्यासाठी मॅन्युअल ऑब्जेक्ट क्रिएशन टाळा.
- लॉजिक एनकॅप्स्युलेट (encapsulate) करण्यासाठी आणि डेटा सुरक्षित ठेवण्यासाठी Factory Functions वापरा.
- ऑटोमॅटिक ऑब्जेक्ट क्रिएशनसाठी "new" कीवर्डचा फायदा घेण्यासाठी Constructor Functions वापरा.
- तुमचे लॉजिक नेहमी एकदाच लिहा आणि त्याचा सर्वत्र वापर करा.
Source: https://dev.to/pearlodi/factory-functions-and-constructor-functions-in-javascript-lmb