この質問では、回答コードの 1 つが次のとおりです。
var arrays = [[1,2,3,4,5,6], [1,1,1,1,1,1], [2,2,2,2,2,2]];
_.map(_.zip.apply(_, arrays), function(pieces) {
return _.reduce(pieces, function(m, p) {return m+p;}, 0);
});
何が関係しapply(_, arrays)
ているのかわかりません。_
この質問では、回答コードの 1 つが次のとおりです。
var arrays = [[1,2,3,4,5,6], [1,1,1,1,1,1], [2,2,2,2,2,2]];
_.map(_.zip.apply(_, arrays), function(pieces) {
return _.reduce(pieces, function(m, p) {return m+p;}, 0);
});
何が関係しapply(_, arrays)
ているのかわかりません。_
呼び出しはapply
次と同等です
_.zip([1,2,3,4,5,6], [1,1,1,1,1,1], [2,2,2,2,2,2])
の最初の引数は、正しいコンテキスト (値apply
) で呼び出されることを確認します。これは通常、アンダースコアの名前空間-コンストラクター-関数-オブジェクトです。実際には関数で使用されていないため、省略して代わりにorを渡すこともできます。zip
this
_
zip
null
undefined
それにはあまり意味がありません_
。
公式ページのデモを参照してくださいhttp://underscorejs.org/#zip
ここでの要点はapply
、2 番目の引数を引数として受け入れるarrays
です。
実際_.zip(arr1, arr2, arr3)
には同じです_.zip.apply( null,[arr1,arr2, arr3])
this
キーワードとして機能する最初の引数は何でもかまいません。の選択_
はおそらくミームであり、の使用法を強調しています_
。それに従ってください:)