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,time);
после выхода из конструктора объект имеет следующие свойства и методы
countVal 125
elem	div#time.timerStarted
interval	500
isPaused	false
isStarted	true ??
timer	2  ??
printCounter	function()
resume	function()
start	function()
stop	function()
свойства объекта timer не null
isStarted не false
я попробовал убрать из Counter.prototype.start
  this.isStarted = true; и тогда свойство isStarted осталось false
вопрос такой. насколько я понял 
Свойство prototype
Значением свойства prototype является ссылка на прототип данного объекта. Прототип используется для динамического добавления или удаления свойств и методов класса объектов.
но почему же при конструировании объекта конструктор проходит по веткам методов и устанавливает встретившиеся свойства?
как тогда избежать такой ситуации?
при изучении объектной модели руководствовался 
http://karaboz.ru/?p=6
http://www.arininav.ru/js/js07.htm#ref3715