Metody zmieniają stan obiektu
Klasy i obiekty - JavaScript od podstaw: konsola (JavaScript)
Obiekt pamięta swój stan między wywołaniami metod. Konto bankowe ma saldo i historię operacji; `deposit` i `withdraw` je zmieniają, ale pilnują reguł: niedodatnia kwota albo za mało środków to odmowa (metoda zwraca `false`). Metoda `toString` mówi, jak obiekt ma wyglądać jako tekst, więc `${account}` w szablonie wywołuje ją sama.
class BankAccount {
constructor(owner, balance = 0) {
this.owner = owner;
this.balance = balance;
this.history = [];
}
deposit(amount) {
if (amount <= 0) return false;
this.balance += amount;
this.history.push('+' + amount);
return true;
}
withdraw(amount) {
if (amount <= 0 || amount > this.balance) return false;
this.balance -= amount;
this.history.push('-' + amount);
return true;
}
toString() {
return `${this.owner}: ${this.balance} zł`;
}
}
const account = new BankAccount('Jan', 100);
console.log(account.deposit(50), account.withdraw(500), account.withdraw(30));
console.log(`${account}`);
console.log('Historia:', account.history.join(' '));
const other = new BankAccount('Ola');
console.log(`${other}`, 'osobny obiekt:', other.balance !== account.balance);Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.
Wszystkie lekcje kursu JavaScript od podstaw: konsola·Zaloguj się, aby zapisać postęp na koncie.