ES6 setInterval(()=> foo(),1000 vs setInterval(foo,1000)

时间:2018-06-05 03:52:54

标签: javascript reactjs ecmascript-6 setinterval arrow-functions

我正在学习React,我正在学习本教程 https://reactjs.org/docs/state-and-lifecycle.html并且在其中,在react组件类中设置了一个间隔,使用的语法是setInterval(() => this.tick(), 1000),其中tick是Clock组件中的方法。我的问题是这样的:所以这个箭头函数在调用时只调用this.tick(),而setInterval会调用它,所以只需传入this.tick而不将其包含在箭头中有什么区别功能如此setInterval(this.tick, 1000)?我认为没有区别,但是在箭头功能中删除换行并且时钟不起作用。这是怎么回事?这是一个代码库的链接,用于演示问题https://codepen.io/anon/pen/aKNJGd?editors=0011(第12行)

1 个答案:

答案 0 :(得分:1)

this works in Javascript的方式有关。使用箭头函数,您可以通过闭包范围从React组件获得this.tick。如果没有箭头功能,被调用的this会有不同的(或没有)this.tick = this.tick.bind(this)

在构造函数中添加它,它将在没有箭头功能的情况下工作。

ruamel.