Reloj extendido
importancia: 5
Tenemos una clase ‘Clock’. Por ahora, muestra la hora cada segundo.
class Clock { constructor({ template }) { this.template = template; } render() { let date = new Date(); let hours = date.getHours(); if (hours < 10) hours = '0' + hours; let mins = date.getMinutes(); if (mins < 10) mins = '0' + mins; let secs = date.getSeconds(); if (secs < 10) secs = '0' + secs; let output = this.template .replace('h', hours) .replace('m', mins) .replace('s', secs); console.log(output); } stop() { clearInterval(this.timer); } start() { this.render(); this.timer = setInterval(() => this.render(), 1000); } }
Crea una nueva clase ExtendedClock
que herede de Clock
y agrega el parámetro precision
: este es el número de milisegundos
entre “tics”. Debe ser 1000
(1 segundo) por defecto.
- Tu código debe estar en el archivo
extended-clock.js
- No modifiques el
clock.js
original. Extiéndelo.
class ExtendedClock extends Clock { constructor(options) { super(options); let { precision = 1000 } = options; this.precision = precision; } start() { this.render(); this.timer = setInterval(() => this.render(), this.precision); } };