我正在尝试学习backbone.js和(顺带)underscore.js,但是我有些难以理解一些惯例。在编写一个简单的搜索过滤器时,我认为以下内容会起作用:
var search_string = new RegExp(query, "i");
var results = _.filter(this, function(data){
return search_string.test(data.get("title"));
}));
但是,事实上,为了使其正常工作,我需要将我的过滤函数更改为以下内容:
var search_string = new RegExp(query, "i");
var results = _(this.filter(function(data){
return search_string.test(data.get("title"));
}));
基本上,我想了解为什么第二个例子可以工作,而第一个不能。根据文档 (http://documentcloud.github.com/underscore/#filter) ,我认为前者应该可以工作。或者这只是我旧的 jQuery 习惯... 有人能为我解释一下吗?