【发布时间】:2020-12-09 04:49:49
【问题描述】:
我想了解以下语法工作方式之间的基本区别。
// Syntax 1
class Component extends React.Component {
constructor(props) {
super(props)
this.handleClick = this.handleClick.bind(this)
}
handleClick() {
// ...
}
}
// Syntax 2
handleClick = () => {
console.log('this is:', this)
}
<button onClick={this.handleClick}>
{'Click me'}
</button>
虽然语法 1 需要在构造函数中指定显式绑定。但是,似乎不需要语法 2。 语法2是如何实现自动绑定的?
我假设这种理解/语法可以扩展到任何框架,包括 React、Angular、Ember 等
【问题讨论】:
-
在语法 1 中,您使用的是普通函数,然后显式调用
.bind()。在语法 2 中,您使用的是箭头函数,它会自动为您执行绑定,因此您不必调用 .bind()。
标签: javascript reactjs ecmascript-6