导出const箭头功能还是基本功能?

abu*_*mam 20 ecmascript-6 babeljs

哪个更好:导出const箭头函数,如下所示:

export const foo = () => 'bar'
Run Code Online (Sandbox Code Playgroud)

或导出常规函数,如下所示:

export function baz() {
  return 'bar';
}
Run Code Online (Sandbox Code Playgroud)

他们编译如下:

exports.baz = baz;
function baz() {
  return 'bar';
}
var foo = exports.foo = function foo() {
  return 'bar';
};
Run Code Online (Sandbox Code Playgroud)

看起来使用const /箭头函数组合声明了一个额外的变量(foo),这似乎是简单函数声明的一个不必要的额外步骤.

Ber*_*rgi 19

差异很小.两者都声明一个变量.

  • 一个const变量是你的模块中也不变,而函数声明理论上可以被覆盖
  • 箭头函数是函数表达式,而不是函数声明,并且赋值可能导致循环依赖性问题
  • 箭头函数不能是构造函数或使用动态this
  • 如果使用简洁的主体,则箭头功能会缩短几个字符,如果使用块体,则箭头功能会延长几个字符.

  • 从架构上讲,只要函数不需要构造函数或`this`,`const`变量应该没问题?你能详细说明第2点,re:循环依赖吗? (4认同)