1

ここで、app.Todos がコレクションであると仮定できます。次に、filterAll 関数をトリガーしたとします。

filterOne : function (todo) {
  console.log(todo);
  todo.trigger('visible');
},


filterAll : function () {
  console.log(app.Todos);
  app.Todos.each(this.filterOne, this);
},

each についてアンダースコアのドキュメントを読んだ後、彼らは each_.each(list, iterator, [context]) と言い、要素のリストを繰り返し処理し、それぞれを順番にイテ​​レータ関数に渡します。

しかし、filterAll 関数は each を使用して関数 this.filterOne を反復処理します。では、どういう意味ですか?この filterOne は要素のリストではありません。助けてください。

ありがとう

4

2 に答える 2

1

この filterOne は要素のリストではありません。助けてください。

アンダースコア関数は、バックボーン インスタンスのメソッドとして実装されます。だからあなたの

app.Todos.each(this.filterOne, this);

と同等です

_.each(app.Todo.models, this.filterOne, this);

またはアンダースコアのオブジェクトラッパー:

_(app.Todo.models).each(this.filterOne, this);
于 2013-05-15T02:52:29.257 に答える