7

アンダースコアjsメソッド_.each_.invoke.
どちらも、各アイテムに渡された関数を呼び出すようです。

どのシナリオで_.eachandを使用する必要があり_.invokeますか?

いくつかの例で違いを共有してください。

4

1 に答える 1

9

いいえ、彼らは違うことをします。彼らのコードを見てください!

  • each指定されたオブジェクトの各要素で指定された関数を呼び出します。さらに、関数が適用されるコンテキストを渡すことができます。forEach配列のネイティブのように機能します。

    iterator.call(context, obj[i], i, obj)
    

    undefined を返します。

  • invoke通常、メソッド名を文字列として取得し、指定されたセットの各要素についてメソッドを動的に検索します。次に、その要素にメソッドを適用します。さらに、いくつかの引数を渡すことができます。

    (_.isFunction(method) ? method : obj[i][method]).apply(obj[i], args);
    

    呼び出しの結果を返しますが、基本的にはmap.

于 2012-11-02T11:44:03.443 に答える