JavaScript માં Object Constructors
તમારે ઘણીવાર એક જ પ્રકારના ઘણા ઓબ્જેક્ટ્સ (objects) બનાવવાની જરૂર પડે છે. JavaScript તમને આ કરવા માટે ઘણા રસ્તાઓ આપે છે.
Constructor Functions
કન્સ્ટ્રક્ટર એ ઓબ્જેક્ટ્સ બનાવવા અને સેટઅપ કરવા માટેનું એક ખાસ ફંક્શન છે. તેને કોલ કરવા માટે new કીવર્ડનો ઉપયોગ કરો. ફંક્શનનું નામ હંમેશા કેપિટલ અક્ષરથી શરૂ કરો. આ તમને તેને સામાન્ય ફંક્શનથી અલગ પાડવામાં મદદ કરે છે.
જો તમે new કીવર્ડ ભૂલી જાઓ, તો ફંક્શન એક સામાન્ય ફંક્શનની જેમ કામ કરશે અને યોગ્ય ઓબ્જેક્ટ બનાવવામાં નિષ્ફળ જશે.
Default Values
તમે તમારા કન્સ્ટ્રક્ટરમાં ડિફોલ્ટ વેલ્યુઝ સેટ કરી શકો છો. આ સુનિશ્ચિત કરે છે કે જો તમે કોઈ આર્ગ્યુમેન્ટ (argument) આપવાનું ભૂલી જાઓ, તો પણ તમારા ઓબ્જેક્ટ્સ પાસે હંમેશા માન્ય ડેટા હોય.
Example:
function Person(name = "Unknown", age = 0) {
this.name = name;
this.age = age;
}
Prototypes અને Memory
કન્સ્ટ્રક્ટરમાં સીધા મેથડ્સ (methods) ઉમેરવા કરતાં પ્રોટોટાઇપ (prototype) માં ઉમેરવા વધુ સ્માર્ટ છે. જ્યારે તમે પ્રોટોટાઇપનો ઉપયોગ કરો છો, ત્યારે તમામ ઇન્સ્ટન્સ (instances) એક જ મેથડ શેર કરે છે. આ મેમરી બચાવે છે કારણ કે કમ્પ્યુટર દરેક નવા ઓબ્જેક્ટ માટે મેથડને ફરીથી બનાવતું નથી.
Object.create()
આ મેથડ હાલના ઓબ્જેક્ટને તેના પ્રોટોટાઇપ તરીકે ઉપયોગ કરીને નવો ઓબ્જેક્ટ બનાવે છે. તે કન્સ્ટ્રક્ટરની જરૂરિયાત વિના ઇનહેરિટન્સ (inheritance) સ્થાપિત કરે છે. નવો ઓબ્જેક્ટ મૂળ ઓબ્જેક્ટના પ્રોપર્ટીઝ (properties) ને એક્સેસ કરી શકે છે.
Class Inheritance
આધુનિક JavaScript ઇનહેરિટન્સ હેન્ડલ કરવા માટે ક્લાસ (classes) નો ઉપયોગ કરે છે. તમે પેરેન્ટ ક્લાસને એક્સટેન્ડ (extend) કરતી ચાઇલ્ડ ક્લાસ બનાવી શકો છો. ચાઇલ્ડમાંથી પેરેન્ટમાં ડેટા મોકલવા માટે super() કીવર્ડનો ઉપયોગ કરો. આ ચાઇલ્ડને તેના પોતાના અનન્ય ફીચર્સ ઉમેરવાની સાથે પેરેન્ટના પ્રોપર્ટીઝનો ઉપયોગ કરવાની મંજૂરી આપે છે.
કન્સ્ટ્રક્ટર્સનો ઉપયોગ શા માટે કરવો?
- Reusable code: ઝડપથી ઘણા સમાન ઓબ્જેક્ટ્સ બનાવો.
- Encapsulation: ઓબ્જેક્ટ સેટઅપ લોજિક એક જ જગ્યાએ રાખો.
- Easy initialization: બનાવતી વખતે ચોક્કસ વેલ્યુઝ સેટ કરો.
- Inheritance: સરળ ઓબ્જેક્ટ્સમાંથી જટિલ ઓબ્જેક્ટ્સ બનાવો.
- Clean code: તમારા લોજિકને વ્યવસ્થિત અને વાંચવામાં સરળ રાખો.
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