zpět k lekci

Rozšířené hodiny

důležitost: 5

Máme třídu Hodiny, která nyní vypíše čas každou sekundu.

class Hodiny {
  constructor({ šablona }) {
    this.šablona = šablona;
  }

  vypiš() {
    let datum = new Date();

    let hodiny = datum.getHours();
    if (hodiny < 10) hodiny = '0' + hodiny;

    let minuty = datum.getMinutes();
    if (minuty < 10) minuty = '0' + minuty;

    let sekundy = datum.getSeconds();
    if (sekundy < 10) sekundy = '0' + sekundy;

    let výstup = this.šablona
      .replace('h', hodiny)
      .replace('m', minuty)
      .replace('s', sekundy);

    console.log(výstup);
  }

  stop() {
    clearInterval(this.časovač);
  }

  start() {
    this.vypiš();
    this.časovač = setInterval(() => this.vypiš(), 1000);
  }
}

Vytvořte novou třídu RozšířenéHodiny, která je zděděna z třídy Hodiny a přidává parametr přesnost – počet milisekund mezi „tiky“. Standardně by měla být 1000 (1 sekunda).

  • Váš kód by měl být v souboru extended-clock.js.
  • Neměňte originální soubor clock.js. Rozšiřte jej.

Otevřít pískoviště pro úlohu.

class RozšířenéHodiny extends Hodiny {
  constructor(možnosti) {
    super(možnosti);
    let { přesnost = 1000 } = možnosti;
    this.přesnost = přesnost;
  }

  start() {
    this.vypiš();
    this.časovač = setInterval(() => this.vypiš(), this.přesnost);
  }
};

Otevřít řešení na pískovišti.