спасибо !
как раз в эти минуты пришел к тому же выводу.
Counter.prototype.count = function() {
this.countVal--;
object = this;
setTimeout(function() { object.printCounter.call(object)},1000);
}
проблема была в том, что при запуске setTimeout контекст this меняется на window