æ©å± clock
éè¦ç¨åº¦: 5
æä»¬è·å¾äºä¸ä¸ª Clock ç±»ãå°ç®å为æ¢ï¼å®æ¯ç§é½ä¼æå°ä¸æ¬¡æ¶é´ã
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);
}
}
å建ä¸ä¸ªç»§æ¿èª Clock çæ°çç±» ExtendedClockï¼å¹¶æ·»å åæ° precision â æ¯æ¬¡ âticksâ ä¹é´é´éçæ¯«ç§æ°ï¼é»è®¤æ¯ 1000ï¼1 ç§ï¼ã
- ä½ ç代ç åºè¯¥å¨
extended-clock.jsæä»¶éã - ä¸è¦ä¿®æ¹åæç
clock.jsã请æ©å±å®ã
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);
}
};
