Используешь метод trim стандарта ES5, но при этом используешь $.proxy...
Навешиваешь обработчик через addEventListener, но при этом используешь return false;
function TodoApp(opt) {
// на один dom элемент навешиваешь события внутри TodoApp
this.elem = opt.elem;
this.taskList = new TaskList(this.elem);
this.elem.on('submit', '.todo-form', $.proxy(this.onFormSubmit, this))
}
function TaskList(el) {
var that = this;
this.el = el;
// и внутри TaskList
this.el.on('click', '.todo-remove', $.proxy(this.onRemoveClick, this))
}
Беда.
Кто-то не знает, как передавать контекст в итерирующие методы...
var that = this;
var oldTasks = that.tasks;
that.tasks = [];
oldTasks.forEach(function(e) {
if(e.done) {
$(e.li).remove();
}else {
that.tasks.push(e);
}
})
и т.д.