JavaScriptУрок 13 из 16

Классы

Класс — это чертёж: по нему через new создают сколько угодно похожих объектов. У каждого счёта свой владелец и баланс, а правила пополнения и снятия общие.

Главное

  • class Name { constructor(…) { this.x = … } } — чертёж и стартовые свойства
  • new Name(…) создаёт объект, и у каждого такого объекта есть методы класса
  • get balance() { … } — геттер: читается как свойство, без скобок
  • #balance — приватное поле: снаружи класса его не прочитать и не изменить
  • class B extends A — наследование; super(…) вызывает конструктор родителя

Пример

class Point {  constructor(x, y) {    this.x = x;    this.y = y;  }   move(dx, dy) {    this.x += dx;    this.y += dy;  }   toString() {    return `(${this.x}, ${this.y})`;  }} class Point3D extends Point {  constructor(x, y, z) {    super(x, y);    this.z = z;  }   toString() {    return `(${this.x}, ${this.y}, ${this.z})`;  }} const p = new Point(1, 2);p.move(3, 4);console.log(`${p}`);console.log(`${new Point3D(1, 2, 3)}`);

Point3D унаследовал move от Point, а toString переопределил. super(x, y) передал x и y конструктору Point. В шаблонной строке объект превращается в текст через свой toString.

Задание

Как пользоваться редактором⌘ Enter или Ctrl Enter — запустить код, ⇧ ⌘ Enter — проверить задание.Tab и Shift Tab сдвигают строку или выделение; Esc, затем Tab — выйти из редактора.Проверка сравнивает то, что напечатала программа, с заданием; пробелы в конце строк не важны.После двух неудачных проверок можно открыть решение. Ваш код сохраняется в этом браузере.

Допишите мини-банк: deposit пополняет #balance, withdraw снимает деньги, а если их не хватает — печатает Not enough money. В SavingsAccount добавьте addInterest(percent): он кладёт на счёт percent процентов от баланса. Вывод: Not enough money, Nora: 165 и true.

Вывод

Здесь появится то, что напечатает программа.