ваш пример самостоятельно отлично работает и правильно
оба алерта выводят false
видимо ошибку в другом месте, которые вы не разместили тут
копайте дальше.
судя по всему каким-то боком у вас вызывается явно метод start() при конструировании оьъекта
var Counter = function(min,sec,interval,elem){
this.elem = elem;
this.countVal = Math.round(min*60) + Math.round(sec);
this.interval = interval;
this.isStarted = false;
this.isPaused = false;
}
Counter.prototype.timer = null;
Counter.prototype.start = function() {
//если таймер не стартовал
if (!this.isStarted){
var that = this;
this.isStarted = true;
this.timer = setTimeout(function() { that.printCounter();},this.interval);
}
else{
return true;
}
}
counter = new Counter(2,5,500,document.body);
alert('time is null: '+(counter.time===null));
alert('isStarted: '+counter.isStarted);