Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 在集合中下划线indexOf_Backbone.js_Comparator_Indexof - Fatal编程技术网

Backbone.js 在集合中下划线indexOf

Backbone.js 在集合中下划线indexOf,backbone.js,comparator,indexof,Backbone.js,Comparator,Indexof,我已经四处寻找答案了,但运气不好。 基本上,我再次回顾了Addy Osmani主干指南,似乎我在这里无法理解这段代码 var people = new Backbone.Collection; people.comparator = function(a, b) { return a.get('name') < b.get('name') ? -1 : 1; }; var tom = new Backbone.Model({name: 'Tom'}); var rob = ne

我已经四处寻找答案了,但运气不好。 基本上,我再次回顾了Addy Osmani主干指南,似乎我在这里无法理解这段代码

var people = new Backbone.Collection;

people.comparator = function(a, b) {
    return a.get('name') < b.get('name') ? -1 : 1;
};

var tom = new Backbone.Model({name: 'Tom'});
var rob = new Backbone.Model({name: 'Rob'});
var tim = new Backbone.Model({name: 'Tim'});

people.add(tom);
people.add(rob);
people.add(tim);

console.log(people.indexOf(rob) === 0); // true
console.log(people.indexOf(tim) === 1); // true
console.log(people.indexOf(tom) === 2); // true
var-people=new-Backbone.Collection;
people.comparator=功能(a,b){
返回a.get('name')
我不知道people.comparator如何重新排序集合,即使它没有在任何地方调用,另外返回1或-1如何重新排序它。 还是在创建集合或对集合本身调用indexOf后隐式调用它?

来自:

默认情况下,集合没有比较器。如果你定义一个 比较器,它将用于以排序方式维护集合 秩序。这意味着在添加模型时,将在 在collection.models中更正索引


因此,每次您调用
people.add(…)
时,集合都会使用您使用
people.comparator=function(a,b){…}
设置的比较器将模型插入到有序位置。

非常感谢您的提醒!事实上,我不确定比较器函数,因为在那次讲座中没有提到。