问题描述
是否保证export default new object()
,其中对象是某种类型(例如日期),始终返回相同的对象?
// date.js
export default new Date()
// foo.js
import date from './date'
// bar.js
import date from './date'
可以预期date
中的foo.js
和date
中的bar.js
是等价的吗?所以 import date from './date'
是一个单身人士?
上面的 export default new Date()
是否等同于 pre-es6 时代的 module.exports = new Date()
?
解决方法
是的,它总是同一个对象。在任何给定的脚本运行中,您可以假设文件的顶层,例如:
// date.js
export default new Date()
将只运行一次,如果文件被导入,则不会再运行。进一步导入该文件将导致 date.js
的导出可导入,但不会再次运行 date.js
。