JavaScript માં Object Constructors
તમારે એક જ પ્રકારના ઘણા ઓબ્જેક્ટ્સ બનાવવા જરૂરી છે. JavaScript આ કાર્યને કાર્યક્ષમ રીતે કરવા માટે અનેક રીતો પ્રદાન કરે છે.
Constructor Functions
કન્સ્ટ્રક્ટર એ નવા ઓબ્જેક્ટ્સ સેટઅપ કરવા માટે વપરાતું ફંક્શન છે. ભૂલો ટાળવા માટે આ નિયમોનો ઉપયોગ કરો:
- ફંક્શનના નામનું પ્રથમ અક્ષર કેપિટલ (Capitalize) રાખો. આ તમને તેને કન્સ્ટ્રક્ટર તરીકે ઓળખવામાં મદદ કરે છે.
newકીવર્ડનો ઉપયોગ કરો. જો તમે આ ભૂલી જશો, તો ફંક્શન સામાન્ય ફંક્શનની જેમ ચાલશે અને ઓબ્જેક્ટ બનાવવામાં નિષ્ફળ જશે.
Default Values
તમે તમારા કન્સ્ટ્રક્ટરમાં ડિફોલ્ટ કિંમતો સેટ કરી શકો છો. આ સુનિશ્ચિત કરે છે કે જો તમે કેટલીક વિગતો છોડી દો તો પણ તમારા ઓબ્જેક્ટ્સ માન્ય રહે.
Example:
function Person(name = "Unknown", age = 0) {
this.name = name;
this.age = age;
}
જો તમે new Person() ને કોલ કરો છો, તો નામ "Unknown" અને ઉંમર 0 થઈ જશે.
Object.create()
તમે અસ્તિત્વમાં રહેલા ઓબ્જેક્ટના આધારે નવો ઓબ્જેક્ટ બનાવવા માટે Object.create() નો ઉપયોગ કરી શકો છો. આ prototype-આધારિત inheritance નો ઉપયોગ કરે છે. ડેટાની નકલ કરવાને બદલે, નવો ઓબ્જેક્ટ મૂળ prototype સાથે જોડાયેલ હોય છે.
Memory Optimization
કન્સ્ટ્રક્ટરની અંદર જ મેથડ્સ (methods) ન મૂકો. જો તમે તેમ કરશો, તો દરેક નવા ઓબ્જેક્ટને તે મેથડની પોતાની નકલ મળશે. આનાથી મેમરીનો બગાડ થાય છે.
તેના બદલે, prototype માં મેથડ્સ ઉમેરો. આ રીતે, બધા ઓબ્જેક્ટ્સ મેથડના એક જ વર્ઝનને શેર કરે છે.
Example:
Person.prototype.greet = function() {
console.log("Hello " + this.name);
};
Inheritance
Classes એક ક્લાસને બીજા ક્લાસમાંથી ઇનહેરિટ (inherit) કરવાની મંજૂરી આપે છે. પેરેન્ટ કન્સ્ટ્રક્ટરને કોલ કરવા માટે ચાઇલ્ડ ક્લાસમાં super() કીવર્ડનો ઉપયોગ કરો. આનાથી ચાઇલ્ડ ક્લાસ પેરેન્ટની પ્રોપર્ટીઝને એક્સેસ કરી શકે છે.
કન્સ્ટ્રક્ટર્સના ઉપયોગના ફાયદા:
- 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