Javascript导出类或对象

Vic*_*Vic 6 javascript ecmascript-6

出口的最佳做法是什么?

class MyUtils {
  print() {...}
  convert() {...}
}
export default new MyUtils();
Run Code Online (Sandbox Code Playgroud)

要么:

const myUtils = {
  print() {...}
  convert() {...}
}
export default myUtils;
Run Code Online (Sandbox Code Playgroud)

或者是其他东西?

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

ran*_*ing 6

你的第二个选项应该适用于单例,这就是我通常使用的。从 Felix 的评论中,我了解到模块是单例的,并且选项 1 也可以工作。我仍然倾向于选择第二个选项,因为代码使我使用单例的意图非常明确。

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

export default myUtils;
Run Code Online (Sandbox Code Playgroud)

  • 第一个选项每次都会创建一个新对象吗?我添加了一个带有“console.log”的“构造函数”并将其导入到多个文件中,但它只打印一次? (2认同)
  • @Vic:模块仅评估一次。 (2认同)