在学习React时,我遇到了以下代码块here:
this.timerID = setInterval(
() => this.tick(),
1000
);
在这里,setInterval的第一个参数是一个返回tick()函数的函数。如果仅将this.tick
替换setInterval的第一个参数,它将不起作用(意味着时钟停止计时)。而仅通过传递函数here即可使用。
为什么会这样?
setInterval具有功能。为什么我们必须传递一个返回函数的箭头函数呢?
答案 0 :(得分:3)
使用箭头功能,即使在另一个上下文(例如setInterval)中执行该功能,也可以确保this
值保持不变
实际上与
相同this.timerID = setInterval(this.tick.bind(this), 1000);
答案 1 :(得分:1)
()=>this.tick()
的简称:
()=>{
return this.tick()
}
当lambda仅包含1行代码时,可以省去括号{...}
您实际上是在返回执行this.tick()
的返回值