Object Constructors ב-JavaScript
עליכם ליצור אובייקטים רבים מאותו סוג. JavaScript מציעה מספר דרכים לעשות זאת ביעילות.
Constructor Functions
בנאי (constructor) הוא פונקציה המשמשת להקמת אובייקטים חדשים. השתמשו בכללים הבאים כדי למנוע שגיאות:
- התחילו את האות הראשונה של שם הפונקציה באות גדולה (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-based inheritance). במקום להעתיק נתונים, האובייקט החדש מקושר לפרוטוטיפ המקורי.
Memory Optimization
אל תכניסו מתודות (methods) בתוך הבנאי עצמו. אם תעשו זאת, כל אובייקט חדש יקבל עותק משלו לאותה מתודה. זה מבזבז זיכרון.
במקום זאת, הוסיפו מתודות לפרוטוטיפ. בדרך זו, כל האובייקטים חולקים גרסה אחת ויחידה של המתודה.
Example: Person.prototype.greet = function() { console.log("Hello " + this.name); };
Inheritance
מחלקות (Classes) מאפשרות למחלקה אחת לרשת ממחלקה אחרת. השתמשו במילת המפתח super() במחלקה יורשת (child class) כדי לקרוא לבנאי של מחלקת האב. זה מאפשר לילד לגשת למאפיינים של האב.
יתרונות השימוש בבנאים:
- קוד לשימוש חוזר: יצירת אובייקטים רבים באמצעות תבנית אחת.
- לוגיקה נקייה: שמירת הגדרת האובייקט במקום אחד.
- אתחול קל: הגדרת ערכים ספציפיים במהלך היצירה.
- ירושה: בניית אובייקטים מורכבים מאובייקטים פשוטים יותר.
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