In this question,其中一个答案代码为:
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)
中的我不了解_
的相关内容。
答案 0 :(得分:5)
apply
来电相当于
_.zip([1,2,3,4,5,6], [1,1,1,1,1,1], [2,2,2,2,2,2])
apply
的第一个参数确保使用正确的上下文(this
value)调用zip
,这通常是_
,Underscore的命名空间 - constructor-function -宾语。实际上它并没有在zip
函数中使用,所以我们可以省略它并改为通过null
或undefined
。
答案 1 :(得分:1)
_
没有多大意义。
请参阅官方页面演示http://underscorejs.org/#zip
这里的要点是apply
,它接受第二个参数arrays
作为参数。
所以_.zip(arr1, arr2, arr3)
实际上与_.zip.apply( null,[arr1,arr2, arr3])
第一个用作this
关键字的参数可以是任何东西。 _
的选择可能是一个模因,并强调了_
的用法。跟着吧:)