Object Constructors in JavaScript

JavaScript constructors ഒബ്‌ജക്റ്റുകൾ കാര്യക്ഷമമായി നിർമ്മിക്കാൻ നിങ്ങളെ സഹായിക്കുന്നു. ഒരേ ഘടനയുള്ള ഒട്ടനവധി ഒബ്‌ജക്റ്റുകൾ നിർമ്മിക്കാൻ നിങ്ങൾക്ക് ഇവ ഉപയോഗിക്കാം.

Constructor Functions

ഒബ്‌ജക്റ്റുകളെ ഇനീഷ്യലൈസ് (initialize) ചെയ്യുന്നതിനുള്ള ഒരു ഫങ്ക്ഷനാണ് constructor. ഇത് വിളിക്കാൻ new എന്ന കീവേഡ് ഉപയോഗിക്കുക. നിങ്ങൾ new എന്ന കീവേഡ് മറന്നാൽ, ഫങ്ക്ഷൻ ഉദ്ദേശിച്ച രീതിയിൽ പ്രവർത്തിക്കില്ല.

Constructor പേരുകൾ എപ്പോഴും ഒരു ക്യാപിറ്റൽ ലെറ്റർ (capital letter) ഉപയോഗിച്ച് തുടങ്ങുക. ഇത് സാധാരണ ഫങ്ക്ഷനുകളിൽ നിന്ന് അവയെ തിരിച്ചറിയാൻ നിങ്ങളെ സഹായിക്കുന്നു.

ഉദാഹരണം:

Object.create()

നിലവിലുള്ള ഒരു ഒബ്‌ജക്റ്റിനെ പ്രോട്ടോടൈപ്പ് (prototype) ആയി ഉപയോഗിച്ച് പുതിയൊരു ഒബ്‌ജക്റ്റ് നിർമ്മിക്കാൻ നിങ്ങൾക്ക് Object.create() ഉപയോഗിക്കാം. ഈ രീതി ഒബ്‌ജക്റ്റുകൾ തമ്മിലുള്ള ഇൻഹെറിറ്റൻസ് (inheritance) ക്രമീകരിക്കുന്നു.

Default Values

നിങ്ങളുടെ constructor-ൽ ഡിഫോൾട്ട് വാല്യൂസ് (default values) നൽകാൻ കഴിയും. ഇത് നിങ്ങളുടെ ഒബ്‌ജക്റ്റുകളിൽ എപ്പോഴും ശരിയായ ഡാറ്റ ഉണ്ടെന്ന് ഉറപ്പാക്കുന്നു. നിങ്ങൾ ഒരു വാല്യൂ നൽകുന്നില്ലെങ്കിൽ, constructor ഡിഫോൾട്ട് വാല്യൂ ഉപയോഗിക്കും.

ഉദാഹരണം:

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

Prototypes and Memory

ഒരു പ്രോട്ടോടൈപ്പിലേക്ക് മെത്തേഡുകൾ (methods) ചേർക്കുന്നത് മെമ്മറി ലാഭിക്കാൻ സഹായിക്കുന്നു. ഓരോ ഒബ്‌ജക്റ്റിനും ഒരു ഫങ്ക്ഷന്റെ സ്വന്തം കോപ്പി ഉണ്ടാകുന്നതിന് പകരം, അവയെല്ലാം പ്രോട്ടോടൈപ്പിൽ നിന്നുള്ള ഒരൊറ്റ വേർഷൻ പങ്കിടുന്നു.

ഉദാഹരണം:

Person.prototype.greet = function() {
    console.log("Hello " + this.name);
};

Inheritance

ഒരു ക്ലാസ്സിന് മറ്റൊരു ക്ലാസ്സിൽ നിന്ന് ഇൻഹെറിറ്റ് ചെയ്യാൻ Classes അനുവദിക്കുന്നു. പാരന്റ് constructor വിളിക്കാൻ super() എന്ന കീവേഡ് ഉപയോഗിക്കുക. ഇത് ചൈൽഡ് ക്ലാസ്സുകൾക്ക് പാരന്റ് ക്ലാസ്സുകളിൽ നിന്നുള്ള പ്രോപ്പർട്ടികളും മെത്തേഡുകളും ഉപയോഗിക്കാൻ അനുവദിക്കുന്നു.

എന്തിനാണ് 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