מתודות שמשנות מצב
חלק מהיחידה תכנות מונחה עצמים במסלול ה-JavaScript של Coddy. שיעור 15 מתוך 56.
מתודות במחלקות JavaScript יכולות לשנות את המצב (המאפיינים) של אובייקט. זוהי אחת התכונות המרכזיות של תכנות מונחה עצמים.
בואו ניצור מחלקה פשוטה בשם BankAccount:
class BankAccount {
constructor(owner, balance = 0) {
this.owner = owner;
this.balance = balance;
}
deposit(amount) {
this.balance += amount;
}
}עכשיו ניצור מופע ונשנה את המצב שלו:
const johnsAccount = new BankAccount("John", 100);
console.log(johnsAccount.balance); // פלט: 100
johnsAccount.deposit(50);
console.log(johnsAccount.balance); // פלט: 150בדוגמה הזו, המתודה deposit() משנה את המצב הפנימי (המאפיין balance) של מופע BankAccount.
אפשר להוסיף שיטות נוספות שמשנות את המצב:
class BankAccount {
constructor(owner, balance = 0) {
this.owner = owner;
this.balance = balance;
}
deposit(amount) {
this.balance += amount;
}
withdraw(amount) {
if (amount <= this.balance) {
this.balance -= amount;
}
}
transfer(amount, toAccount) {
if (amount <= this.balance) {
this.balance -= amount;
toAccount.balance += amount;
}
}
}עכשיו אפשר לשנות את חשבון הבנק שלנו בדרכים שונות.
אתגר
ניתנת לך מחלקה Thermostat. המשימה שלך היא להוסיף מתודות שמשנות את מצב הטמפרטורה שלה:
increaseTemp()- מעלה את הטמפרטורה במעלה אחתdecreaseTemp()- מורידה את הטמפרטורה במעלה אחת
נסו בעצמכם
import { Thermostat } from './thermostat.js';
// קוד בדיקה - אין לשנות
const livingRoom = new Thermostat("Living Room", 20);
livingRoom.increaseTemp();
livingRoom.increaseTemp();
console.log(livingRoom.currentTemp); // אמור להדפיס 22
livingRoom.decreaseTemp();
console.log(livingRoom.currentTemp); // אמור להדפיס 21
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה תכנות מונחה עצמים
1אובייקטים ומילת המפתח this
סקירה מהירה: אובייקטיםהוספת מתודות לאובייקטיםהבנת מילת המפתח thisפונקציות בנאימילת המפתח newאתגר סיכום7הורשה ומילת המפתח extends
הורשההקשר "הוא-סוג-של"מילת המפתח extendsהמתודה super()הורשת מאפיינים ומתודותאתגר סיכום8ארגון קוד OOP
ארגון מחלקות במודוליםתרגלו בעצמכם: קומפיילר JavaScript אונליין