我很难理解剩余函数在下面的代码中是如何工作的。
(注释来源:http ://documentcloud.github.com/backbone/docs/todos.html )
我对 apply 的理解是第一个参数是上下文,其余参数是一个数组,作为参数传递给正在应用的函数。
var TodoList = Backbone.Collection.extend({
model: Todo,
localStorage: new Backbone.LocalStorage("todos-backbone"),
done: function()
{
return this.filter(function(todo) { return todo.get('done'); });
},
remaining: function()
{
return this.without.apply(this, this.done());
},
});
所以:
this.without.apply(this, this.done()); --> 翻译为:
without(array of arguments as parameters to without function);
without 将第一个参数作为数组和要从数组中删除的 2...n 个参数。
我不明白这个功能是如何做任何有用的事情的。对我所缺少的东西的解释会有所帮助。