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

标签 javascript underscore.js

使用下划线,我想创建一个 partial function对于 parseInt,以便与 map 一起使用时基数始终为 10。

我希望下面的方法起作用,但它不起作用:

var parseInt10 = _.partial(parseInt, _, 10); 

docs似乎说可以使用 _ 作为占位符来跳过稍后在 _.partial 中指定的参数:

_.partial(function, *arguments)

Partially apply a function by filling in any number of its arguments, without changing its dynamic this value. A close cousin of bind. You may pass _ in your list of arguments to specify an argument that should not be pre-filled, but left open to supply at call-time.

测试

_.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); };

但是,underscore 的文档似乎暗示可以使用 _.partial 这一事实让我想知道我做错了什么。

那么,我是不是对下划线文档的解释有误,还是没有处理跳过参数的特殊值?

最佳答案

我刚刚决定检查 source code它似乎是 _.partial was added 的占位符功能recently .在下划线文档页面上使用 JS 控制台,它成功了!

var parseInt10 = _.partial(parseInt, _, 10);

我想我只是需要升级到最新版本。

(对于所有编写 future 文档的人来说,使用类似于 jQuery 或 Django 文档的版本号内联更改注释会很好,或者至少使所呈现的版本更加显眼)

关于javascript - 如何使用下划线 _ 为 parseInt() 创建部分函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22161328/

相关文章:

javascript - 多行链接中 Bootstrap 工具提示的解决方法

javascript - 为什么这个javascript 'If... Else...'语句中没有比较语句

javascript - 为什么我不能将 Backbone.Collection 用作通用集合?是否有执行此操作的实现?

javascript - 如何使用 Angular 将表单数据发送到服务器?

javascript - Animated.Component/createAnimatedComponent(Component) 与 Component 有何不同?

javascript - jQuery $(this) 返回 [object Object]

javascript - 下划线 - 从已排序的对象数组中查找

javascript - 将对象数组及其属性转换为数组

javascript - Underscore.js 模板内未定义函数

javascript - 引用错误: todoItem is not defined Backbone + CoffeeScript