【发布时间】:2016-09-15 19:37:09
【问题描述】:
所以对于 ES6,我们有箭头函数——在我看来,除了维护 this 上下文之外——增加了可读性。
常见示例:
[...].map(item => item.attr) 或 [...].reduce((a,b) => {...} )。
所以我问自己:使用这些箭头函数而不是function(){...} 是否被认为是一种好习惯。因为这就是你现在看到的。
我个人的 2 美分:
- 从可读性和可维护性的角度来看,我想普遍使用箭头函数
- 从技术和上下文的角度来看,我认为使用箭头函数应该是一个例外,而不是常态,因为它会导致不需要的行为。例如:更改箭头函数的上下文是毫无意义的:
(()=>{}).apply(window)绝对没有效果。也就是说:需要特定上下文的库很容易被箭头函数弄垮。
这只是我想法的一小部分。每次我使用箭头函数时,我都会有这种偏执狂,因为当你实际上不需要留在那个上下文中时,我觉得这样做是错误的。
【问题讨论】:
-
我认为你应该在适当的时候使用它们,在不适当的时候不要使用它们。
-
@vlaz 你是个有远见的人。
-
@vlaz:这是一个非常详尽的答案。谢谢。
-
看起来一些不错的 SO 专家刚刚对这个问题表示否定。继续做好工作,永远不要把它留给自己。
标签: javascript ecmascript-6 arrow-functions