Quick actions

cmd+k|ctrl+k

Navigation

Languages

OOP in JS

Snippet info

Language

JavaScript

Visibility

public

Author

jsonkody

Created

2024-03-04T09:59:22.451216Z

Updated

2024-03-04T10:04:31.171142Z

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