使用绑定运算符来柯里化一个函数?

Use bind operator to curry a function?

鉴于this.handler.bind(this)可以替换为::this.handler,我如何用::替换this.handler.bind(this, 1)

我发现这在我想附加处理程序以响应组件的情况下很有用。例如:

handler(x) {
  this.setState({counter: x})
}

<a onClick={this.handler.bind(this, 5)}>increment by 5</a>

我知道我可以使用 _.curry (lodash),但它在代码可读性方面几乎相同:

<a onClick={_.curry(::this.handler, 5)}>increment by 5</a>

ES next draft for the bind operator 不具有当前指定的部分应用功能。只需继续使用 bind (this.handler.bind(this, 5) 或简单的箭头函数 e => this.handler(5, e).