options
通常是一个JavaScript对象,包含键/值对,为方法调用提供数据、上下文、参数或配置信息。可以将其视为命名参数,而非有序参数。
例如:
var makePerson = function(name, options) {
var person = {};
person.name = name;
person.age = options.age;
return person;
};
var me = makePerson('Alex', {age:30});
如何使用调用的函数中的this对象,取决于该函数。
backbone的
Collection.initialize()
方法的文档似乎没有列出预期使用的选项对象中的键,这很不幸。因此,如果不查看源代码,就无法确定。但是你的示例似乎表明需要一个
view
键。所以你可以像这样调用它:
var friendsCollection = new Friends(userModels, {view: someBackboneView});
这只是许多库通常使用的一种约定,并没有什么特别之处。但通常,将对象作为参数传递给函数调用中的许多键比调用带有许多参数的函数更好,因为每个值都有一个标签,可以清楚地说明每个值的作用。
进一步看一下这里:http://documentcloud.github.com/backbone/docs/backbone.html#section-53
看起来Collection.initialize()
只接受一个单独的选项:comparator
。在此您可以定义用于对集合中的模型进行排序的函数:http://documentcloud.github.com/backbone/#Collection-comparator
将其应用到您的示例中,可以像这样调用:
var friendsCollection = new Friends(userModels, {
view: someBackboneView,
comparator: function(friend) {
return friend.get('age');
}
});