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

आपको अक्सर एक ही प्रकार के कई ऑब्जेक्ट्स बनाने की आवश्यकता होती है। JavaScript आपको ऐसा करने के कई तरीके प्रदान करता है।

Constructor Functions

Constructor एक विशेष फंक्शन है जिसका उपयोग ऑब्जेक्ट्स बनाने और उन्हें सेटअप करने के लिए किया जाता है। इसे कॉल करने के लिए new कीवर्ड का उपयोग करें। फंक्शन के नाम को हमेशा एक कैपिटल लेटर (बड़े अक्षर) से शुरू करें। इससे आपको इसे सामान्य फंक्शन से अलग पहचानने में मदद मिलती है।

यदि आप new कीवर्ड भूल जाते हैं, तो फंक्शन एक मानक फंक्शन की तरह काम करता है और एक उचित ऑब्जेक्ट बनाने में विफल रहता है।

Default Values

आप अपने कंस्ट्रक्टर में डिफॉल्ट वैल्यूज़ सेट कर सकते हैं। यह सुनिश्चित करता है कि यदि आप कोई आर्गुमेंट (argument) देना भूल जाते हैं, तब भी आपके ऑब्जेक्ट्स में हमेशा वैध डेटा रहे।

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

Prototypes and Memory

प्रोटोटाइप (prototype) में मेथड्स जोड़ना, उन्हें सीधे कंस्ट्रक्टर में जोड़ने की तुलना में अधिक समझदारी भरा है। जब आप प्रोटोटाइप का उपयोग करते हैं, तो सभी इंस्टेंस (instances) एक ही मेथड को साझा करते हैं। इससे मेमोरी की बचत होती है क्योंकि कंप्यूटर हर नए ऑब्जेक्ट के लिए मेथड को दोबारा नहीं बनाता है।

Object.create()

यह मेथड एक मौजूदा ऑब्जेक्ट को अपने प्रोटोटाइप के रूप में उपयोग करके एक नया ऑब्जेक्ट बनाता है। यह बिना कंस्ट्रक्टर की आवश्यकता के इनहेरिटेंस (inheritance) स्थापित करता है। नया ऑब्जेक्ट मूल ऑब्जेक्ट की प्रॉपर्टीज़ तक पहुँच सकता है।

Class Inheritance

आधुनिक JavaScript इनहेरिटेंस को संभालने के लिए क्लासेस (classes) का उपयोग करती है। आप एक चाइल्ड क्लास बना सकते हैं जो पैरेंट क्लास को एक्सटेंड (extend) करती है। चाइल्ड से पैरेंट को डेटा पास करने के लिए super() कीवर्ड का उपयोग करें। यह चाइल्ड को पैरेंट की प्रॉपर्टीज़ का उपयोग करने की अनुमति देता है और साथ ही अपनी अनूठी विशेषताएं भी जोड़ने की सुविधा देता है।

Why use constructors?

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

Optional learning community: https://t.me/GyaanSetuAi