Потому, что вы в обработчике события получаете в
this ссылку на тот элемент, в котором обработчик был зарегистрирован.
Вам следует что называется «забиндить» обработчик на ваш объект.
Пример (вынес все методы в прототип, что есть правильно)
Вариант 1this.Up = function () {
...
}.bind(this);
this.Down = function () {
...
}.bind(this);
Вариант 2this.Render = function () {
$(document)
.on('click', '#counter-minus', this.Down.bind(this))
.on('click', '#counter-plus', this.Up.bind(this));
}
Вариант с каррированиемfunction Counter(start){
var xxx = this;
//А тут везде внутри функций вместо this фтыкаем xxx
}
Последний вариант плох тем, что лишает возможности использовать прототип. Поэтому смотрите в сторону первых двух.