导出默认的新对象
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
中的date
和bar.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
。
是否保证 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
中的date
和bar.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
。