@DuBFx

Использование класса в другом классе?

Есть класс Таймер, объект которого создается в другом классе, поскольку в нем нужно использовать метод таймера. Но код работает некорректно.
class TimerClass {
    
    constructor(time, minutes, seconds) {
        this.time = time;
        this.minutes = minutes;
        this.seconds = seconds;  
    }

    static get divTimer() {
        return  document.getElementById('timer');
      }

    startTime() {
        if (this.time) {
            return
        }
        this.time = setInterval(() => {
            this.seconds++;
            if (this.seconds === 60) {
                this.minutes++;
                this.seconds = 0;
            }
            TimerClass.divTimer.innerHTML = `${this.minutes} mins ${this.seconds} secs`;
        }, 1000);
    };

    stopTime() {
        clearInterval(this.time);
    };

}


Использование таймера во втором классе:
let timer = new TimerClass(0,0,0);
.....
card.addEventListener("click", timer.startTime);


TimerClass.divTimer.innerHTML выходит следующий: "undefined mins NaN secs"
Как решить эту проблему?
  • Вопрос задан
  • 74 просмотра
Решения вопроса 1
@StockholmSyndrome
потеряли контекст
правильно так:
card.addEventListener("click", timer.startTime.bind(timer));
или
card.addEventListener("click", () => timer.startTime());
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
17 мая 2024, в 13:04
15000 руб./за проект
17 мая 2024, в 12:53
500 руб./за проект
17 мая 2024, в 12:41
10000 руб./за проект