_.ary
功能有什么意义?给出的例子是...
_.map(['6', '8', '10'], _.ary(parseInt, 1));
...我可以看到这很有帮助,因为
map
使用三个参数 value
、index
和 collection
调用回调函数,而 parseInt
本身会误解 index
作为 radix
,给出了错误的结果:
[6, NaN, 2]
不过,直接写不是更简单吗...
['6', '8', '10'].map(x => parseInt(x))
...不使用Lodash?
您当然可以编写自己的函数作为
.map()
的回调,但是 .ary()
为您提供的是强制忽略运行时传递给 .map()
回调之类的附加参数的能力。如果没有 .ary()
,运行时会向 .map()
传递 3 个参数,这可能会导致使用某些常用方法作为回调时出现问题。 _.ary()
方法“撤消”该行为,仅使用您要求的参数调用包装函数。