【发布时间】:2017-11-09 11:22:18
【问题描述】:
我见过使用 Javascript 类的代码使用以下形式(例如 React):
class UserProfile extends Component {
state = {
open: false
}
handleOpen = () => {
this.setState({ open: true })
}
}
为什么handleOpen 被实现为设置为函数的属性而不是类似的东西:
class UserProfile extends Component {
state = {
open: false
}
handleOpen() {
this.setState({ open: true })
}
}
提前致谢!
【问题讨论】:
-
请注意,
foo = ...是一个实验性功能。它还不是任何规范的一部分,当然不是 ES6。 -
@FelixKling,你指的是哪一部分?
-
@Chris:类体内的语法
name = value以及方法定义 (foo() {})。这目前是一个提议,并不是语言的正式组成部分。见tc39.github.io/proposal-class-public-fields。 -
@FelixKling,天哪,我什至没有注意到。但是,我确实认为 OP 只是省略了构造函数以使示例简短。由于使用了箭头函数,我将问题标记为 ES6。
-
@FelixKling 我想的差不多,但我见过的很多 React 代码 sn-ps 都使用这种语法。
标签: javascript reactjs ecmascript-next