通过以下经验法则来处理ES6及更高版本中的函数:
- 在全局作用域内使用function,包括Object.prototype中的属性。
- 对于对象构造器使用class实现。
- 在其他地方使用=>箭头函数。
为什么几乎到处使用箭头函数?
- 作用域安全:当一致地使用箭头函数时,一切都保证使用与根相同的thisObject。如果将一个标准函数回调与一堆箭头函数混合在一起,则作用域可能会变得混乱。
- 紧凑性:箭头功能更易于读写。
- 清晰度:当几乎所有东西都是箭头函数时,任何常规函数都会立即用于定义用域。开发人员总是可以查找下一个更高的函数语句来查看thisObject是什么。
来源: stackoverflow.com