gpt4 book ai didi

javascript - Backbone.js 中的 "options"是什么?

转载 作者:可可西里 更新时间:2023-11-01 01:40:56 25 4
gpt4 key购买 nike

我在官方看到的Backbone.js中的“options”是什么source code并且还用于 Thomas Davis 的教程博客中示例代码在这里:

Friends = Backbone.Collection.extend({
initialize: function (models, options) {
this.bind("add", options.view.addFriendLi);
}
});

我没有看到任何其他教程使用它,甚至没有提到它的文档。它确实如此,但在上下文类型的格式([选项])中,而不是在硬编码的“选项”中:options.view.addFriendLi

最佳答案

options 通常是键/值对的 javascript 对象,为方法调用提供数据/上下文/参数/配置。将其视为命名参数,而不是有序参数。

例如:

var makePerson = function(name, options) {
var person = {};
person.name = name;
person.age = options.age;
return person;
};

var me = makePerson('Alex', {age:30}); // In 3 days... scary :(

被调用的函数如何使用此对象取决于该函数。

Collection.initialize() 的 Backbone 文档似乎没有列出选项对象上使用或期望的键,这很不幸。所以不看源头,就无从得知。但是您的示例似乎确实表明需要 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');
}
});

关于javascript - Backbone.js 中的 "options"是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8997714/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com