为什么我不用const/let声明箭头函数

242 阅读1分钟

虽然我很喜欢箭头函数,但是,我大部分情况下是用function关键字声明函数

变量提升

如下图所示,真正重要的代码其实是最底下的那几行执行函数,但我阅读时只看到一大堆不重要的辅助函数出现在了我眼前。讲道理,要把最重要的代码放最顶部,比如说我需要查看某个函数是什么意思,我只需要读它的函数名,然后去找就行了。而不是罗列出所有的函数填充在最顶部,看着太难受了。

image.png

相反,我用function关键字声明的函数,则看着就很舒服,如下图所示,最重要的信息被罗列在了最上面,需要看哪个函数就去找就行了,而且你用箭头函数声明函数时,有时候你会看着很疑惑,特别是变量多的时候,你可能一下子分不清楚到底哪个是变量哪个是函数。而function关键字就一目了然是什么

image.png

什么时候该用箭头函数呢?

当你用匿名函数作为回调函数时,箭头函数是再好不过的选择,如下图所示,这个时候如果用function声明函数就显得非常的难读和丑陋

image.png

当然,还有this上的区别,对于箭头和普通函数,但这并不是我最主要用function写函数的原因,因为我很少写面向对象编程。最主要的还是为了易读性