Странный у вас таймер, имхо.
По-моему класс Timer не должен взаимодействовать с dom, если его основной задачей является countdown.
Оставшееся время лучше хранить в (мили)секундах.
class Timer {
__startValue;
__currentValue;
__state = false;
constructor(seconds) {
this.__startValue = this.__currentValue = seconds;
}
__countdown() {
if (!this.__state)
return this;
this.__currentValue--;
setTimeout(this.__countdown.bind(this), 1000);
return this;
}
start() {
this.__state = true;
this.__countdown();
return this;
}
stop() {
this.__state = false;
return this;
}
reset() {
this.__currentValue = this.__startValue;
return this;
}
getSeconds() {
return this.__currentValue;
}
}