export default 可导出初始化函数(如 init、start),但需手动调用;不可自动执行,推荐导出带参函数以提升可测试性与灵活性。

在 JavaScript 中,export default 不能直接导出“初始化主函数”这个概念本身,因为 JS 没有内置的“主函数”机制(不像 C 或 Java)。但你可以用 export default 导出一个函数,它在模块被导入后由调用方主动执行,起到“初始化逻辑入口”的作用。
导出一个可立即调用的初始化函数
最常见做法是定义一个函数(比如叫 init、main 或 start),然后用 export default 导出它。注意:导出的是函数本身,不是调用结果。
✅ 正确写法(导出函数引用):
// main.js
function init() {
console.log('应用初始化开始');
// 这里放你的启动逻辑:DOM 准备、状态初始化、事件绑定等
}
<p>export default init;立即学习“Java免费学习笔记(深入)”;
在其他模块中使用它
导入后,你需要显式调用它——JS 不会自动执行导出的函数。
// index.js import init from './main.js'; init(); // ✅ 主动调用,触发初始化
想导出并自动执行?不推荐但可实现
如果真希望模块加载时就运行初始化逻辑(类似“自执行”),可以导出一个立即执行函数表达式(IIFE),但要注意这会失去函数复用性,且不利于测试和按需加载:
- ❌ 不推荐(破坏封装、难以测试):
export default (() => {
console.log('模块加载即初始化');
return { /* 可选返回值 */ };
})();- ✅ 更合理的替代方案:导出函数 + 在入口文件统一调用(如
index.js或框架的main.ts) - 保持初始化逻辑可测试、可延迟、可条件执行
常见搭配:导出带配置的初始化函数
实际项目中,初始化常需要参数(如配置对象)。导出一个接受参数的函数更灵活:
// app.js
export default function start(config = {}) {
const { debug = false, container = '#app' } = config;
if (debug) console.log('启动中...', config);
// 初始化逻辑...
}
<p>// 使用时:
// import start from './app.js';
// start({ debug: true, container: '#root' });


















