绑定在以下代码中的 this.tick.bind(this)语句中执行了什么操作:
export class Counter extends React.Component {
constructor(props) {
super(props);
this.state = {count: props.initialCount};
}
tick() {
this.setState({count: this.state.count + 1});
}
render() {
return (
<div onClick={this.tick.bind(this)}>
Clicks: {this.state.count}
</div>
);
}
}
代码取自React网站。
答案 0 :(得分:10)
.bind()
设置用于创建的函数的this
,作为传入的参数。Docs here。
在这种情况下,它会将this
函数的tick()
设置为render()
函数的上下文。
您可以这样做,因为当一个函数用作DOM事件处理程序时,this
被设置为调度DOM事件的元素。您希望保证this
是您期望的那个,因为它在tick()
答案 1 :(得分:0)
它曾用于将参数传递给tick()方法,它只是Javascript而且没有特定的反应。