导出默认新对象

Yuk*_*uki 3 javascript export node.js module.exports

是否保证export default new object(),当对象是某种类型(例如日期)时,始终返回相同的对象?

// date.js
export default new Date()
// foo.js
import date from './date'
// bar.js
import date from './date'
Run Code Online (Sandbox Code Playgroud)

是否可以预期dateinfoo.jsdateinbar.js是等价的。那么import date from './date'是单例吗?

上面的内容export default new Date()相当于module.exports = new Date()es6 之前的时代吗?

Cer*_*nce 5

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

// date.js
export default new Date()
Run Code Online (Sandbox Code Playgroud)

如果导入文件,将只运行一次,不再运行。进一步导入该文件将导致 的date.js导出可导入,但不会date.js再次运行。