𝗢𝗯𝗷𝗲𝗰𝘁 𝗖𝗼𝗻𝘀𝘁𝗿𝘂𝗰𝘁𝗼𝗿𝘀 𝗶𝗻 𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁

तुम्हाला अनेकदा एकाच प्रकारच्या अनेक ऑब्जेक्ट्स तयार करण्याची गरज पडते. JavaScript तुम्हाला हे करण्यासाठी अनेक मार्ग देते.

Constructor Functions

कन्स्ट्रक्टर हे ऑब्जेक्ट्स तयार करण्यासाठी आणि सेट करण्यासाठी एक विशेष फंक्शन आहे. ते कॉल करण्यासाठी new कीवर्ड वापरा. फंक्शनचे नाव नेहमी कॅपिटल अक्षराने सुरू करा. यामुळे ते नियमित फंक्शन्सपासून वेगळे ओळखण्यास मदत होते.

जर तुम्ही new कीवर्ड विसरलात, तर ते फंक्शन एका सामान्य फंक्शनप्रमाणे काम करते आणि योग्य ऑब्जेक्ट तयार करण्यात अपयशी ठरते.

Default Values

तुम्ही तुमच्या कन्स्ट्रक्टरमध्ये डीफॉल्ट व्हॅल्यूज सेट करू शकता. यामुळे, जर तुम्ही एखादा आर्ग्युमेंट (argument) द्यायला विसरलात, तरीही तुमच्या ऑब्जेक्ट्समध्ये नेहमी वैध डेटा असल्याची खात्री मिळते.

Example:

function Person(name = "Unknown", age = 0) {
    this.name = name;
    this.age = age;
}

Prototypes आणि Memory

कन्स्ट्रक्टरमध्ये थेट मेथड्स (methods) जोडण्यापेक्षा प्रोटोटाइपमध्ये (prototype) जोडणे अधिक स्मार्ट आहे. जेव्हा तुम्ही प्रोटोटाइप वापरता, तेव्हा सर्व इन्स्टन्सेस (instances) एकच मेथड शेअर करतात. यामुळे मेमरी वाचते कारण संगणकाला प्रत्येक नवीन ऑब्जेक्टसाठी ती मेथड पुन्हा तयार करावी लागत नाही.

Object.create()

ही मेथड अस्तित्वात असलेल्या ऑब्जेक्टचा प्रोटोटाइप म्हणून वापर करून एक नवीन ऑब्जेक्ट तयार करते. कन्स्ट्रक्टरची गरज न पडता ही मेथड इनहेरिटन्स (inheritance) प्रस्थापित करते. नवीन ऑब्जेक्ट मूळ ऑब्जेक्टमधील प्रॉपर्टीज (properties) वापरू शकतो.

Class Inheritance

आधुनिक JavaScript इनहेरिटन्स हाताळण्यासाठी क्लासेसचा (classes) वापर करते. तुम्ही मूळ क्लासला (parent class) एक्सटेंड करणारा एक चाइल्ड क्लास (child class) तयार करू शकता. चाइल्डकडून पेरेंटकडे डेटा पाठवण्यासाठी super() कीवर्ड वापरा. यामुळे चाइल्ड क्लासला स्वतःची वैशिष्ट्ये जोडतानाच पेरेंट क्लासच्या प्रॉपर्टीज वापरण्याची परवानगी मिळते.

कन्स्ट्रक्टर्स का वापरावेत?

Source: https://www.geeksforgeeks.org/javascript/js-constructor-method/ Source: https://www.w3schools.com/js/js_object_constructors.asp Full post: https://dev.to/kamalesh_ar_6252544786997/object-constructors-in-javascript-2e96

वैकल्पिक लर्निंग कम्युनिटी: https://t.me/GyaanSetuAi