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.