Ramda.js 的占位符有什么用?

1,954 阅读1分钟

提前确定参数

bind 绑定参数

我们知道可以用 bind 提前绑定参数

但是这样会多出一个讨厌的 null。

curry

用 curry 可以除去这个 null:

partial

用 partial 也可以:

绑定其他参数怎么办?

上面的 bind / curry / partial 都可以绑定参数,但是只能绑定前面的参数,如果我要绑定中间或者后面的参数怎么办呢?

看例子:

可以看到每次 readFile 的后面两个参数都是 'utf8' 和 output。

于是你可能会这样改写:

看起来还不错。

Ramda 占位符

占位符就是用来解决这种问题的,不过前提是函数是柯里化过的:

然后稍微优化一下:

你可以认为 __ 的位置就是 file1.txt 和 file2.txt 出现的位置。

是不是特别直观?

这就是占位符的用法。

参考:hackernoon.com/i-ramda-par…