24

_.identity(value)underscore.jsの使い方を教えてください。ドキュメント ( http://underscorejs.org/#identity )から理解できません。

その使用例をいくつか挙げていただけますか?

4

3 に答える 3

14

基本的にノーオペレーション機能です。渡されたものの値を返します。

ライブラリ自体の中で「デフォルトのイテレータ」として使用されているという部分は、オプションの「イテレータ」パラメータを持つ可能性のある他の関数 (何らかの配列の各要素に適用する関数として使用される可能性が高い) を意味します。 、反復子パラメーターが渡されない場合、ライブラリは代わりにこの「ノーオペレーション」反復子を使用し、配列の要素は変更されません。

于 2013-01-08T13:59:47.593 に答える
13

具体例:

Underscore.js では _.each を次のように定義しています。

_.each = function(obj, iterator, context) {
  ...
}

このイテレータは el 値を示します。このイディオムを使ったことがあるかもしれません。

_.each([1, 2, 3], function(el){
  console.log(el);
});

このイテレータは el 値を変更せずに返します。

_.each([1, 2, 3], function(el){
  return el;
});

そのまま値を返す関数が多発します。そのため、Underscore.js は関数を定義したいと考えています。Underscore.js は関数に _.identity という名前を付けます。

_.identity = function(value) {
  return value;
};

Underscore.js がデフォルトの反復子を使用したい場合、Underscore.js で必要なのは _.identity を呼び出すことだけです。

_.each([1, 2, 3], _.identity);
于 2014-08-14T04:05:35.970 に答える