Javascript导出类或对象

时间:2016-08-12 15:07:07

标签: javascript ecmascript-6

导出的最佳做法是什么?

class MyUtils {
  print() {...}
  convert() {...}
}
export default new MyUtils();

或者:

const myUtils = {
  print() {...}
  convert() {...}
}
export default myUtils;

还是其他什么?

注意:这应该是一个单身,不超过1个实例

3 个答案:

答案 0 :(得分:3)

你的第二个选项应该适用于单身人士,这就是我正常使用的选项。根据Felix的评论,我得到的模块是单例,而选项1也可以。我仍然倾向于使用第二个选项,因为代码使我打算非常清楚地使用单例。

const myUtils = {
  print() {...}
  convert() {...}
}

export default myUtils;

答案 1 :(得分:1)

通常将对象导出为默认导出是一种反模式。你最好的选择是做

export function print() {...}
export function convert() {...}

然后做

import * as utils from "./utils";

避免完全创建对象,并依赖模块对象本身作为命名空间。

答案 2 :(得分:-1)

如果是单身人士,只需导出该对象即可。您应该像下面一样导出类,并且只有在您多次使用它时才会导出。 (毕竟,类的意义在于它应该像创建多个对象的模板一样运行)

export default class MyUtils {
  print() {...}
  convert() {...}
}