如何使用下划线_为parseInt()创建部分函数

use*_*130 3 javascript underscore.js

使用下划线,我想创建一个部分函数,parseInt以便使用时基数总是10 map.

我期望以下工作,但它没有:

var parseInt10 = _.partial(parseInt, _, 10); 
Run Code Online (Sandbox Code Playgroud)

文档似乎说,这是可以使用_作为占位符跳过参数在后面的规定_.partial:

_.partial(function,*arguments)

通过填充任意数量的参数来部分应用函数,而不更改其动态此值.近亲的近亲.您可以在参数列表中传递_以指定不应预先填充的参数,但在呼叫时保持打开状态.

测试

_.map([_, '_', undefined, null], function(x) { return _.partial(function(){ return arguments }, x, 10)('123'); })
Run Code Online (Sandbox Code Playgroud)

使用_.partial(function(){ return arguments }, x, 10)('123')和更换x_,"_",undefined,null,我发现所有这些值被原样传递直接作为预期.我的印象是传球_意味着不会直接使用.

注意

我完全清楚我能做到这样的事情:

var parseInt10 = function(n) { return parseInt(n, 10); };
Run Code Online (Sandbox Code Playgroud)

然而,下划线的文档似乎暗示它可以使用的事实让_.partial我想知道我做错了什么.

那么,我是否解释了下划线文档错误,或者没有处理跳过参数的特殊值?

use*_*130 5

我刚刚决定检查源代码,最近_.partial 添加 了占位符功能.使用下划线文档页面上的JS控制台,它工作正常!

var parseInt10 = _.partial(parseInt, _, 10);
Run Code Online (Sandbox Code Playgroud)

猜猜我只需要升级到最新版本.

(对于所有编写未来文档的人来说,使用类似于jQuery或Django的文档的版本号内联更改注释会更好,或者至少使其更加引人注目的版本)