Я оглядываюсь на список задач Backbone и задаю вопрос о коллекции.
Вот код:
window.TodoList = Bacbone.Collection.extend({
model: Todo,
localStorage: new Store("todos"),
done: function() {
return this.filter(function(todo){return todo.get("done")})
},
remaining: function() {
return this.without.apply(this, this.done());
}
})
Я понимаю все, что здесь происходит, кроме "оставшейся" функции.
Оператор return: return this.without.apply(this, this.done());
использует прокси для метода подчеркивания - _.without
В соответствии с документами Underscore, вот что это для:
without_.without(array, [* values]) Возвращает копию массива с все экземпляры значений удалены. === используется для равенства тест.
_. без ([1, 2, 1, 0, 3, 1, 4], 0, 1); = > [2, 3, 4]
Итак, я понимаю, что он говорит, чтобы вернуть все в коллекции без атрибута "done" со значением "true".
То, что я не понимаю, это функция "применить", которая привязана к ней. Это не отображается в документах Backbone или в документах Underscore. По крайней мере, я не могу найти его.
Может ли кто-нибудь подробно объяснить, что происходит с этими элементами в инструкции Return?