передача this.method в setTimeout не работает?

Я вижу проблему с передачей метода объекта в качестве аргумента для setTimeout. Я знаю, внутри вложенной функции, область этого должна быть установлена вручную, но что, если я непосредственно передам объект функции, в моем случае this.counting. Для чего нужно объявить анонимную функцию в качестве первого аргумента, this.counting уже является функцией.

Mozilla также использует функцию (msg) {self.remind (msg);} вместо this.remind в первом аргументе setTimeout.

function Timer(count,start){
    this.count = count;
    this.start = start;

}

//below code works
Timer.prototype.counting = function(){
    var self = this;
    setTimeout(function(){self.counting();},this.start);
    console.log(this.count);
    this.count++;
};

//below code doesn't work
/*
Timer.prototype.counting = function(){
    setTimeout(this.counting,this.start);
    console.log(this.count);
    this.count++;
};
*/
var t1 = new Timer(0,1000);
t1.counting();
var t2 = new Timer(100,1000);
t2.counting();

Ответы на вопрос(1)

Ваш ответ на вопрос