【发布时间】:2017-04-07 05:41:22
【问题描述】:
我已经看到了这两种类型的代码,我想知道是否有偏好;使用匿名或命名函数:
function myFunc() {
this.myMethod = () => {
//..
}
}
function myFunc() {
this.myMethod = function() {
//..
}
}
取自 MDN:
与函数相比,箭头函数表达式的语法更短 表达式并且不绑定它自己的 this、arguments、super 或 新目标。箭头函数始终是匿名的。这些功能 表达式最适合非方法函数,它们不能 用作构造函数。
匿名对我们来说是有意义的,因为您可能想要访问 myFunc 属性而不必执行_this = this。另一方面,它指出匿名函数最适合非方法函数(即回调)。
【问题讨论】:
-
你的
myMethod函数都是匿名表达式? -
^ 没错,正如 MDN 所说,使用箭头语法可以让您免于将其引用到另一个变量以便以后使用它的麻烦。非箭头函数来自 ES5 语法,所以如果你使用 ES6 总是使用箭头函数,它不会破坏任何东西,但它会帮助你引用
this。 -
@Diabolic “如果你使用 ES6 总是使用箭头函数,它不会破坏任何东西” 这是不正确的。如果使用定义的
this值调用回调,则箭头函数将具有this的“错误”值。