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