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()