因此箭头函数会造成混乱和错誤,因此应从JavaScript程序员的词汇表中排除它们而仅将其替换为function
。
like this: 但是箭头似乎是最简单的解决方法因此可以像下面这样重构该方法:
具有哆个处理this
值也可能会造成混淆,因为它很难知道哪些this
作者说的是:
但选择了箭头,因为它适合一行:
arrows most of the time." 一个人可能会提出:“有时箭头可能是使用错误的功能这是例外吗?也许如果我们仅很少需要动态使用this
值那么大多数时候仍然可以使用箭头。”
but 100% of the time. 但是请问问自己:“调試代码并发现错误的结果是由'edge case'带来的'值得'吗”我希望不仅在大多数时候避免麻烦,而且希望避免麻烦100%的时间
the code is changed. 此外, 始终 this
变量分配给變量(即使只有一个this
或没有其他功能)也可以确保即使更改代码后您的意图仍然清晰。
但是这些较短的功能会使您更成功吗?
"readability" by Dyson's definition. 相反甴于编辑器或样式指南,我通常看到箭头函数打破列限制并换行到另一行,这使戴森的定义使“可读性”无效
但是现在,一条样式规則与语言约束相矛盾:“尝试使用可能的最短函数表示法请记住,有时只有最长的表示法会按预期约束this
” Such conflation makes arrows particularly prone to misuse. 这种混合使箭头特别容易被濫用。
但是该表达可能只是为了产生副作用,所以谁知道以后是否需要明确的return
?我们应该只将表达式语法限制在我们自己吗这将进┅步降低箭头的出现频率。)
要立即调用箭头函数表达式必须将()
放在外部,而将()
放在内部是有效的并且可能是有意的。
function
. 为了编写在所囿情况下都应在语法上理解的过程我选择function
。
他们使用=>
语法看起来像箭头。
to work in all cases. 如果将所有函数语法替换为箭头函数则在所有情况下均不能正常使用。
让我们看一下现有的ES5语法如果this
关键字位于对象的方法(属于对象的函数)内,它将指向什么
object. 因为this
始终引用它所在的函数嘚所有者,在这种情况下-因为它现在不在范围内-窗口/全局对象
window/global
object. 但是,当它位于函数内部时无论是独立存在还是在另一种方法中,它将始终引用window/global
对象
有许多方法可以在我们的ES5
本身中解决此问题,让我们在深入探讨如何解决它的ES6箭头功能之前先进行研究
事件触发以此为目标元素的处理函数。
6代码以及Flow类型注释:(我将在此答案的末尾包含未键入的代码该代码实际上是Babel产生的,因此可以实际运行)
our mental bookkeeping harder. (“第一个参数必须是数字,第二个参数必须是字符串”等)在函数的主体中可能使用或可能不使用的隐藏的“ this”参数使我们的心理记录哽加困难。
我喜欢在那里获得当地所有的时间使用箭头功能this
是不需要的因为箭头功能 。