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"));
}));
基本的に、最初の例が機能しないのに、2 番目の例が機能する理由を理解したいと思います。ドキュメント (http://documentcloud.github.com/underscore/#filter) に基づいて、前者が機能すると思いました。それとも、これは私の古い jQuery の習慣を反映しているだけなのかもしれません... 誰か説明してくれませんか?