OOP in JS

Run Settings
LanguageJavaScript
Language Version
Run Command
class Item { // Statická proměnná pro sledování počtu vytvořených instancí static totalItemsCreated = 0; constructor(name, description, useTime) { this.name = name; this.description = description; this.useTime = useTime; this.#useCount = 0; // Skrytá proměnná instance pro sledování počtu použití // Zvýšení počtu vytvořených instancí Item.totalItemsCreated += 1; } #useCount; // Deklarace skryté proměnné instance use() { this.#useCount += 1; // Zvýšení počtu použití return `Používá se ${this.name} (${this.description}), což trvá ${this.useTime} sekund. Počet použití: ${this.#useCount}.`; } // Statická metoda pro získání celkového počtu vytvořených instancí static getTotalItemsCreated() { return Item.totalItemsCreated; } } const baterka = new Item("Baterka", "osvětluje cestu", 0); console.log(baterka.use()); // Použije baterku a vypíše zprávu const lekarnicka = new Item("Lékárnička", "léčí zranění", 20); console.log(lekarnicka.use()); // Použije lékárničku a vypíše zprávu console.log(Item.getTotalItemsCreated()); // Vypíše celkový počet vytvořených instancí Item class Survik { constructor(name, item) { this.item = item this.name = name } set_item(item) { this.item = item } use_item() { const item_line = this.item.use() console.log(`${this.name} pouziva ${this.item.name}: ${item_line}`) } } const pepa = new Survik('Pepik the survik', baterka) pepa.use_item() pepa.set_item(lekarnicka) pepa.use_item()
Editor Settings
Theme
Key bindings
Full width
Lines