为什么要在函数中声明调用javascript类方法?

时间:2018-10-19 10:00:26

标签: javascript reactjs

我在react.js tutorial中偶然发现了这段代码

   componentDidMount() {
     this.timerID = setInterval(() => this.tick(),1000);
   }

(此componentDidMount()在React.Component扩展类内部)

问题是,为什么我需要首先绑定()=>?

如果在课外我可以做

setInterval(tick,1000)

编辑:在我标记为重复问题的辩护中,重复问题提供的链接围绕'this'关键字展开。我真正要问的是为什么我应该在类中使用箭头函数/绑定。尽管答案指向如何使用“ this”关键字,但起源和问题绝对是唯一的。

1 个答案:

答案 0 :(得分:1)

() =>是箭头函数,箭头函数内部的this的值由周围的范围确定。如果this内部没有箭头功能setInterval,则会得到一个新的scope,因此this.tick将不起作用。如果您使用的是箭头功能,则scope的内部和外部的setInterval都是相同的