首页 > 解决方案 > 导出默认新对象

问题描述

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

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

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

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

标签: javascriptnode.jsexportmodule.exports

解决方案


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

// date.js
export default new Date()

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


推荐阅读