澄清在这种情况下使用bind?

时间:2017-03-30 21:00:08

标签: javascript reactjs ecmascript-6

有人可以帮助解释在这种情况下使用bind的用途是什么?

Connection

https://youtu.be/OKRu7i49X54?list=PL6gx4Cwl9DGBuKtLgPR_zWYnrwv-JllpA&t=3m3s

根据我的理解,当null传递给bind时, this 指的是全局范围。但不知何故,它似​​乎指的是 Board 实例。

2 个答案:

答案 0 :(得分:3)

bind允许您将参数植入到结果函数中。

  

fun.bind(thisArg [,arg1 [,arg2 [,...]]])

因此调用this.add,为上下文传递null(在使用new调用构造函数时忽略),并播种" bacon tuna"第一个论点。

您可以在此处阅读有关function.prototype.bind的更多信息https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_objects/Function/bind

答案 1 :(得分:1)

React.createClass()会自动为我们正确绑定this值,但使用ES6类时的更改会影响thissource

这就是视频的原因,即使bind(null, 'something')方法正在使用add(),也可以使用this.setState()。如果您尝试将bind(null, ...)extends React.Component一起使用而不是React.createClass,则无效。

如果您打开the source link,您可以阅读Todd Motto的非常详细和更长的解释。