通过() => {}
和function () {}
,我们可以在ES6中获得两种非常相似的方法来编写函数。在其他语言中,lambda函数通常是匿名的,但在ECMAScript中,任何函数都可以是匿名的。这两种类型都有唯一的使用域(即当this
需要显式绑定或显式不绑定时)。在这些领域之间,有大量的情况下,任何一种表示法都可以。
ES6中的箭头函数至少有两个限制:
new
,不能在创建prototype
时使用this
在初始化时绑定到作用域的问题撇开这两个限制不谈,理论上箭头函数几乎可以在任何地方取代常规函数。在实践中使用它们的正确方法是什么?是否应该使用箭头函数,例如:
this
变量不可知的任何地方,并且我们不是在创建对象。我正在寻找在未来版本的ECMAScript中选择适当的函数符号的指导方针。指导原则需要明确,以便可以在团队中教授给开发人员,并保持一致,以便不需要在一个函数符号和另一个函数符号之间来回不断地重构。
这个问题是针对那些在即将到来的ECMAScript 6 (Harmony)环境中思考过代码风格的人,以及已经使用过该语言的人。