نريد أن نتيح هذا المشروع المفتوح المصدر إلى كل الناس حول العالم. من فضلك ساعدنا على ترجمة محتوى هذه السلسله للغة التى تعرفها.
الرجوع الي الدرس

ساعة ممتدة

لدينا فصل “ساعة”. حتى الآن ، يطبع الوقت كل ثانية.

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);
  }
}

أنشئ فئة جديدة ExtendedClock ترث منClock وتضيف المعلمة الدقة – عددms بين “القراد”. يجب أن يكون “1000” (ثانية واحدة) افتراضيًا.

  • يجب أن يكون الكود الخاص بك في ملف ممتد على مدار الساعة. js
  • لا تعدّل “clock.js” الأصلي. توسيعها.

افتح sandbox للمهمه.

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);
  }
};

افتح الحل في sandbox.