Javascript 编写单元测试用例时,箭头函数和普通函数之间有什么区别?

Javascript 编写单元测试用例时,箭头函数和普通函数之间有什么区别?,javascript,reactjs,unit-testing,jestjs,enzyme,Javascript,Reactjs,Unit Testing,Jestjs,Enzyme,我正在创建一个react组件,在这个组件中,我将箭头函数用于类方法和生命周期挂钩。我正在为同一个文件编写单元测试用例。但问题是,, 当我用老的javascript方式编写生命周期钩子时,比如 componentDidMount(){ ...Here } 运行测试覆盖率,那么这个生命周期方法将自动覆盖。但是当我像这样写的时候 componentDidMount = () => { ...Here } 并且运行代码覆盖率,它在单元测试中未被覆盖,并显示“语句未被覆盖” 所以

我正在创建一个react组件,在这个组件中,我将箭头函数用于类方法和生命周期挂钩。我正在为同一个文件编写单元测试用例。但问题是,, 当我用老的javascript方式编写生命周期钩子时,比如

componentDidMount(){
  ...Here
}
运行测试覆盖率,那么这个生命周期方法将自动覆盖。但是当我像这样写的时候

componentDidMount = () => {
  ...Here    
}
并且运行代码覆盖率,它在单元测试中未被覆盖,并显示“语句未被覆盖”


所以我的问题是,在编写单元测试用例时,这两种方法之间有什么区别?

有一个很大的区别,第一种方法创建了一个方法,第二种方法创建了一个属性而不是一个方法,所以它不存在于原型中

您可以通过在构造函数中绑定它来使用它,但生命周期事件中的箭头函数会影响性能。

可能会有所帮助