使用下划线,我想为parseInt
创建partial function,以便使用map
时基数始终为10。
我希望以下方法有效,但不会:
var parseInt10 = _.partial(parseInt, _, 10);
docs似乎表示可以使用_
作为占位符来跳过稍后在_.partial
中指定的参数:
_.partial(function,* arguments)
通过填写任意数量的参数来部分应用函数, 没有改变它的动态这个值。近亲的近亲。您 可以在您的参数列表中传递_以指定参数 不应预先填写,但在通话时保持开放状态。
_.map([_, '_', undefined, null], function(x) { return _.partial(function(){ return arguments }, x, 10)('123'); })
使用_.partial(function(){ return arguments }, x, 10)('123')
并将x
替换为_
,"_"
,undefined
,null
,我发现所有这些值都已通过按预期直接改变。我认为传递_
意味着不会直接使用它。
我完全清楚我能做到这样的事情:
var parseInt10 = function(n) { return parseInt(n, 10); };
然而,下划线的文档似乎暗示可以使用_.partial
让我想知道我做错了什么。
那么,我是否解释了下划线文档错误,或者没有处理跳过参数的特殊值?
答案 0 :(得分:5)
我刚决定查看source code,它似乎是_.partial
was added recently的占位符功能。使用下划线文档页面上的JS控制台,它可以工作!
var parseInt10 = _.partial(parseInt, _, 10);
猜猜我只需要升级到最新版本。
(对于所有撰写未来文档的人来说,最好使用类似于jQuery或Django文档的版本号来内联更改注释,或者至少使其显示更加引人注目的版本)