בנאי אובייקטים (Object Constructors) ב-JavaScript
לעיתים קרובות תצטרכו ליצור אובייקטים רבים מאותו סוג. JavaScript מציעה לכם מספר דרכים לעשות זאת.
פונקציות בנאי (Constructor Functions)
בנאי הוא פונקציה מיוחדת לבנייה והגדרה של אובייקטים. השתמשו במילת המפתח new כדי לקרוא לה. תמיד התחילו את שם הפונקציה באות גדולה (Capital letter). זה עוזר להבדיל אותה מפונקציות רגילות.
אם תשכחו את מילת המפתח new, הפונקציה תעבוד כפונקציה רגילה ולא תצליח ליצור אובייקט תקין.
ערכי ברירת מחדל
ניתן להגדיר ערכי ברירת מחדל בבנאי שלכם. זה מבטיח שלאובייקטים שלכם יהיו תמיד נתונים תקינים, גם אם שכחתם להעביר ארגומנט.
דוגמה: function Person(name = "Unknown", age = 0) { this.name = name; this.age = age; }
פרוטוטיפים (Prototypes) וזיכרון
הוספת מתודות לפרוטוטיפ היא חכמה יותר מאשר להוסיף אותן ישירות לבנאי. כשמשתמשים בפרוטוטיפ, כל המופעים (instances) חולקים מתודה אחת ויחידה. זה חוסך בזיכרון מכיוון שהמחשב אינו יוצר מחדש את המתודה עבור כל אובייקט חדש.
Object.create()
מתודה זו יוצרת אובייקט חדש תוך שימוש באובייקט קיים כפרוטוטיפ שלו. היא מאפשרת ירושה ללא צורך בבנאי. האובייקט החדש יכול לגשת למאפיינים (properties) של האובייקט המקורי.
ירושת מחלקות (Class Inheritance)
JavaScript מודרנית משתמשת במחלקות (classes) כדי לנהל ירושה. ניתן ליצור מחלקת בן (child class) שמרחיבה מחלקת אב (parent class). השתמשו במילת המפתח super() כדי להעביר נתונים מהבן לאב. זה מאפשר לבן להשתמש במאפיינים של האב תוך הוספת תכונות ייחודיות משלו.
למה להשתמש בבנאים?
- קוד לשימוש חוזר: יצירה מהירה של אובייקטים דומים רבים.
- א封装 (Encapsulation): שמירת לוגיקת הגדרת האובייקט במקום אחד.
- אתחול קל: הגדרת ערכים ספציפיים בזמן היצירה.
- ירושה: בניית אובייקטים מורכבים מאובייקטים פשוטים יותר.
- קוד נקי: שמירה על לוגיקה מאורגנת וקלה לקריאה.
מקור: https://www.geeksforgeeks.org/javascript/js-constructor-method/ מקור: https://www.w3schools.com/js/js_object_constructors.asp פוסט מלא: https://dev.to/kamalesh_ar_6252544786997/object-constructors-in-javascript-2e96
קהילת למידה אופציונלית: https://t.me/GyaanSetuAi