apply()中_的含义

时间:2013-10-16 12:56:29

标签: underscore.js

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)中的

我不了解_的相关内容。

2 个答案:

答案 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函数中使用,所以我们可以省略它并改为通过nullundefined

答案 1 :(得分:1)

_没有多大意义。

请参阅官方页面演示http://underscorejs.org/#zip

这里的要点是apply,它接受​​第二个参数arrays作为参数。

所以_.zip(arr1, arr2, arr3)实际上与_.zip.apply( null,[arr1,arr2, arr3])

相同

第一个用作this关键字的参数可以是任何东西。 _的选择可能是一个模因,并强调了_的用法。跟着吧:) enter image description here