𝗢𝗯𝗷𝗲𝗰𝘁 𝗖𝗼𝗻𝘀𝘁𝗿𝘂𝗰𝘁𝗼𝗿𝘀 𝗶𝗻 𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁
ഒരേ തരത്തിലുള്ള ഒട്ടനവധി ഒബ്ജക്റ്റുകൾ (objects) നിർമ്മിക്കേണ്ടതുണ്ട്. ഇത് കാര്യക്ഷമമായി ചെയ്യാൻ JavaScript പല വഴികൾ വാഗ്ദാനം ചെയ്യുന്നു.
Constructor Functions
പുതിയ ഒബ്ജക്റ്റുകൾ സജ്ജീകരിക്കാൻ ഉപയോഗിക്കുന്ന ഒരു ഫങ്ക്ഷനാണ് (function) constructor. പിശകുകൾ ഒഴിവാക്കാൻ ഈ നിയമങ്ങൾ പാലിക്കുക:
- ഫങ്ക്ഷൻ നാമത്തിന്റെ ആദ്യ അക്ഷരം ക്യാപിറ്റൽ (Capital) ആയി എഴുതുക. ഇത് ഒരു constructor ആണെന്ന് തിരിച്ചറിയാൻ സഹായിക്കും.
newകീവേഡ് ഉപയോഗിക്കുക. ഇത് മറന്നുപോയാൽ, ഫങ്ക്ഷൻ ഒരു സാധാരണ ഫങ്ക്ഷനെപ്പോലെ പ്രവർത്തിക്കുകയും ഒബ്ജക്റ്റ് നിർമ്മിക്കുന്നതിൽ പരാജയപ്പെടുകയും ചെയ്യും.
Default Values
നിങ്ങളുടെ constructor-ൽ ഡിഫോൾട്ട് വാല്യൂസുകൾ (default values) നൽകാൻ സാധിക്കും. ചില വിവരങ്ങൾ നൽകാൻ വിട്ടുപോയാലും ഒബ്ജക്റ്റുകൾ കൃത്യമായിരിക്കുമെന്ന് ഇത് ഉറപ്പാക്കുന്നു.
Example:
function Person(name = "Unknown", age = 0) {
this.name = name;
this.age = age;
}
നിങ്ങൾ new Person() എന്ന് വിളിച്ചാൽ, പേര് "Unknown" എന്നും പ്രായം 0 എന്നും ആയിരിക്കും.
Object.create()
നിലവിലുള്ള ഒരു ഒബ്ജക്റ്റിനെ അടിസ്ഥാനമാക്കി പുതിയ ഒബ്ജക്റ്റ് നിർമ്മിക്കാൻ നിങ്ങൾക്ക് Object.create() ഉപയോഗിക്കാം. ഇത് prototype-അധിഷ്ഠിത ഇൻഹെറിറ്റൻസ് (prototype-based inheritance) ആണ് ഉപയോഗിക്കുന്നത്. ഡാറ്റ കോപ്പി ചെയ്യുന്നതിന് പകരം, പുതിയ ഒബ്ജക്റ്റ് ഒറിജിനൽ പ്രോട്ടോടൈപ്പുമായി ബന്ധിപ്പിക്കപ്പെടുന്നു.
Memory Optimization
മെത്തേഡുകൾ (methods) നേരിട്ട് constructor-നുള്ളിൽ നൽകരുത്. അങ്ങനെ ചെയ്താൽ, ഓരോ പുതിയ ഒബ്ജക്റ്റിനും ആ മെത്തേഡിന്റെ സ്വന്തം കോപ്പി ലഭിക്കും. ഇത് മെമ്മറി നഷ്ടപ്പെടുത്തുന്നു.
പകരം, മെത്തേഡുകൾ prototype-ലേക്ക് ചേർക്കുക. ഇത്തരത്തിൽ, എല്ലാ ഒബ്ജക്റ്റുകളും ആ മെത്തേഡിന്റെ ഒരൊറ്റ വേർഷൻ പങ്കിടുന്നു.
Example:
Person.prototype.greet = function() {
console.log("Hello " + this.name);
};
Inheritance
ഒരു ക്ലാസ്സിന് മറ്റൊരു ക്ലാസ്സിൽ നിന്ന് ഇൻഹെറിറ്റ് ചെയ്യാൻ (inherit) Classes അനുവദിക്കുന്നു. പാരന്റ് constructor വിളിക്കാൻ ചൈൽഡ് ക്ലാസ്സിൽ super() കീവേഡ് ഉപയോഗിക്കുക. ഇത് പാരന്റ് ക്ലാസ്സിലെ പ്രോപ്പർട്ടികൾ (properties) ചൈൽഡ് ക്ലാസ്സിന് ഉപയോഗിക്കാൻ സഹായിക്കുന്നു.
Constructor ഉപയോഗിക്കുന്നതുകൊണ്ടുള്ള ഗുണങ്ങൾ:
- Reusable code: ഒരു പാറ്റേൺ ഉപയോഗിച്ച് ഒട്ടനവധി ഒബ്ജക്റ്റുകൾ നിർമ്മിക്കാം.
- Clean logic: ഒബ്ജക്റ്റ് സെറ്റപ്പ് ഒരിടത്ത് തന്നെ സൂക്ഷിക്കാം.
- Easy initialization: നിർമ്മാണ സമയത്ത് തന്നെ പ്രത്യേക വാല്യൂസുകൾ നൽകാം.
- Inheritance: ലളിതമായ ഒബ്ജക്റ്റുകളിൽ നിന്ന് സങ്കീർണ്ണമായവ നിർമ്മിക്കാം.
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