我在react.js tutorial中偶然发现了这段代码
componentDidMount() {
this.timerID = setInterval(() => this.tick(),1000);
}
(此componentDidMount()在React.Component扩展类内部)
问题是,为什么我需要首先绑定()=>?
如果在课外我可以做
setInterval(tick,1000)
编辑:在我标记为重复问题的辩护中,重复问题提供的链接围绕'this'关键字展开。我真正要问的是为什么我应该在类中使用箭头函数/绑定。尽管答案指向如何使用“ this”关键字,但起源和问题绝对是唯一的。
答案 0 :(得分:1)
() =>
是箭头函数,箭头函数内部的this
的值由周围的范围确定。如果this
内部没有箭头功能setInterval
,则会得到一个新的scope
,因此this.tick
将不起作用。如果您使用的是箭头功能,则scope
的内部和外部的setInterval
都是相同的