פונקציות בנאי (Constructor Functions) ב-JavaScript
השתמשו בפונקציות בנאי כדי ליצור אובייקטים רבים בעלי אותו מבנה.
פונקציית בנאי פועלת כתבנית (blueprint). משתמשים במילת המפתח new כדי לבנות אובייקטים מתוך התבנית הזו. מומלץ להתחיל שמות של בנאים באות גדולה (Capital letter).
איך זה עובד:
כשמשתמשים במילת המפתח new, JavaScript מבצעת ארבע פעולות:
- היא יוצרת אובייקט חדש וריק.
- היא מגדירה את
thisכך שיצביע על האובייקט החדש. - היא מריצה את קוד הפונקציה.
- היא מחזירה את האובייקט החדש.
מילת המפתח this היא חיונית. בתוך הפונקציה, this מתייחסת לאובייקט החדש שלכם.
דוגמה:
function Employee(name, salary) {
this.name = name;
this.salary = salary;
}
const emp1 = new Employee("Ram", 50000);
const emp2 = new Employee("Kumar", 60000);
שני האובייקטים חולקים את אותו מבנה.
הוספת מתודות:
ניתן להוסיף פונקציות בתוך הבנאי.
function Employee(name, salary) {
this.name = name;
this.salary = salary;
this.displayInfo = function() {
console.log(this.name + " earns " + this.salary);
};
}
ניהול זיכרון:
הוספת מתודות ישירות בתוך הבנאי יוצרת עותק חדש עבור כל אובייקט. דבר זה צורך יותר זיכרון.
במקום זאת, השתמשו במאפיין ה-prototype.
Employee.prototype.greet = function() {
console.log("Hello " + this.name);
};
כעת, כל עובד חולק עותק יחיד של המתודה greet. זה הופך את הקוד שלכם ליעיל יותר.
סיכום:
- השתמשו ב-object literals עבור אובייקטים בודדים.
- השתמשו בפונקציות בנאי עבור מספר אובייקטים בעלי אותו מבנה.
מקור: https://dev.to/dev_saravanan_journey/javascript-constructor-functions-k6k