/
spirzen
/
it-code-examples
Обзор
Документация
Войти
/
spirzen
/
it-code-examples
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
examples/javascript/js-501-22-001/main.js
55 строк
2 KB
Spirzen
Code migration pack
09 июн 2026, 01:41
09 июн 2026, 01:41
cebc284
Код
Авторство
О чём код?
class Warrior { // Статическое поле static count = 0; // Поле класса (ES2022) health = 100; // Конструктор constructor(name, level = 1) { this.name = name; // this — ссылка на экземпляр this.level = level; Warrior.count++; } // Геттер get damage() { return this.level * 10 + (this.strength || 0); } // Метод attack(target) { console.log(`${this.name} атакует ${target.name}`); target.health -= this.damage; } // Статический метод static getCount() { return Warrior.count; } } // Наследование class Knight extends Warrior { constructor(name, horseName, level) { super(name, level); // вызов конструктора родителя (обязателен!) this.horseName = horseName; } // Переопределение метода attack(target) { console.log(`${this.name} на коне ${this.horseName} атакует!`); super.attack(target); // вызов метода родителя } // Свойство вместо метода get shout() { return `За ${this.name}!`; } } // Использование const w1 = new Warrior("Артур", 5); const w2 = new Knight("Ланселот", "Скакун", 10); w1.attack(w2); console.log(w2.shout); // "За Ланселот!" (геттер без скобок)