导出默认的新对象

export default new object

是否保证 export default new object(),其中对象是某种类型(例如日期),returns 始终是同一个对象?

// date.js
export default new Date()
// foo.js
import date from './date'
// bar.js
import date from './date'

难道foo.js中的datebar.js中的date是等价的吗?那么import date from './date'是单例吗?

上面的 export default new Date() 是否等同于 es6 之前时代的 module.exports = new Date()

是的,它总是同一个对象。在任何给定的 运行 脚本中,您可以假设文件的顶层,例如:

// date.js
export default new Date()

将 运行 恰好一次,如果文件被导入,则不会更多。进一步导入该文件将导致 date.js 的导出可导入,但不会再次 运行 date.js