this.list.on('dblclick', '.todo-task', function(e) {
var task = $(e.currentTarget).data('task');
var newName = prompt('', task.name);
task.edit(newName);
});
this.list.on('change', '.todo-check', function(e) {
var task = $(e.currentTarget).parent().data('task');
task.onCheckChange();
});
this.list.on('click', '.todo-x', $.proxy(this.onXClick, this));
обычно навешивание делается в один вызов. для этого передаётся карта имен событий к обработчикам. чё по чём - в документации показано.
... вообще, что делают обработчики событий в конструкторе? нужно вынести их в инициализацию, или что-то в этом роде (document.ready)