何时使用箭头函数而不是utils中的常规函数

时间:2018-04-06 08:35:17

标签: javascript ecmascript-6

我已经看过两种编写util函数的方法:

export function func1(arg1, arg2) {
    // do something
}

和箭头功能版

export const func1 = (arg1, arg2) => {
    // do something
};

为什么一个人使用一个而不是另一个?这仅仅是个人偏好的问题吗?

1 个答案:

答案 0 :(得分:0)

箭头函数与函数声明/表达式具有不同的行为,因此我们先看一下差异:

Lexical this and arguments

箭头功能没有自己的这个或参数绑定。相反,这些标识符在词法范围内像任何其他变量一样被解析。这意味着在一个箭头函数中,这个和参数引用了这个和参数在箭头函数定义的环境中的值(即"外部"箭头函数):

无法使用新的

调用箭头功能

ES2015区分可调用的函数和可构造的函数。如果函数是可构造的,则可以使用new调用它,即new User()。如果函数是可调用的,则可以在没有new的情况下调用它(即正常函数调用)。 通过函数声明/表达式创建的函数既可构造又可调用。 箭头函数(和方法)只能调用。类构造函数只能构造。还有很多其他的东西比如回调,原型等