JavaScriptలో Object Constructors

మీరు తరచుగా ఒకే రకమైన అనేక ఆబ్జెక్ట్‌లను సృష్టించాల్సి ఉంటుంది. దీని కోసం JavaScript మీకు అనేక మార్గాలను అందిస్తుంది.

Constructor Functions

ఆబ్జెక్ట్‌లను నిర్మించడానికి మరియు సెటప్ చేయడానికి కన్‌స్ట్రక్టర్ (constructor) అనేది ఒక ప్రత్యేకమైన ఫంక్షన్. దీనిని పిలవడానికి new కీవర్డ్‌ను ఉపయోగించండి. ఫంక్షన్ పేరును ఎల్లప్పుడూ క్యాపిటల్ లెటర్‌తో ప్రారంభించండి. ఇది సాధారణ ఫంక్షన్‌ల నుండి దీనిని వేరు చేయడానికి మీకు సహాయపడుతుంది.

మీరు new కీవర్డ్‌ను మర్చిపోతే, ఆ ఫంక్షన్ ఒక సాధారణ ఫంక్షన్‌లా పనిచేస్తుంది మరియు సరైన ఆబ్జెక్ట్‌ను సృష్టించడంలో విఫలమవుతుంది.

Default Values

మీరు మీ కన్‌స్ట్రక్టర్‌లో డిఫాల్ట్ విలువలను (default values) సెట్ చేయవచ్చు. దీనివల్ల మీరు ఏదైనా ఆర్గ్యుమెంట్‌ను మర్చిపోయినా, మీ ఆబ్జెక్ట్‌లకు ఎల్లప్పుడూ సరైన డేటా ఉండేలా చూసుకోవచ్చు.

ఉదాహరణ:

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

Prototypes మరియు Memory

మెథడ్స్‌ను నేరుగా కన్‌స్ట్రక్టర్‌కు జోడించడం కంటే ప్రోటోటైప్‌కు (prototype) జోడించడం తెలివైన పద్ధతి. మీరు ప్రోటోటైప్‌ను ఉపయోగించినప్పుడు, అన్ని ఇన్‌స్టెన్స్‌లు (instances) ఒకే మెథడ్‌ను పంచుకుంటాయి. దీనివల్ల కంప్యూటర్ ప్రతి కొత్త ఆబ్జెక్ట్ కోసం మెథడ్‌ను మళ్ళీ సృష్టించదు, తద్వారా మెమరీ ఆదా అవుతుంది.

Object.create()

ఈ మెథడ్ ఇప్పటికే ఉన్న ఆబ్జెక్ట్‌ను దాని ప్రోటోటైప్‌గా ఉపయోగించి కొత్త ఆబ్జెక్ట్‌ను సృష్టిస్తుంది. ఇది కన్‌స్ట్రక్టర్ అవసరం లేకుండానే ఇన్హెరిటెన్స్ (inheritance)ను ఏర్పాటు చేస్తుంది. కొత్త ఆబ్జెక్ట్ అసలు ఆబ్జెక్ట్ యొక్క ప్రాపర్టీలను యాక్సెస్ చేయగలదు.

Class Inheritance

ఆధునిక JavaScript ఇన్హెరిటెన్స్‌ను నిర్వహించడానికి క్లాస్‌లను (classes) ఉపయోగిస్తుంది. మీరు పేరెంట్ క్లాస్‌ను విస్తరించే (extends) చైల్డ్ క్లాస్‌ను సృష్టించవచ్చు. చైల్డ్ నుండి పేరెంట్‌కు డేటాను పంపడానికి 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

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