javaScript中通过es6模块或Commonjs导出函数以实现代码复用与封装。使用export导出命名函数,import导入;或用export default设置默认导出,在node.js中则通过module.exports导出,require引入,从而实现模块化管理。

在javascript中,定义函数并将其作为模块导出,是为了实现代码的复用、封装和按需加载。现代JS支持多种模块化方案,最常见的是ES6模块(ESM)和CommonJS(主要用于Node.js)。下面介绍如何定义函数以及如何通过不同模块系统将其导出和使用。
定义函数并使用ES6模块导出
ES6模块是浏览器和现代node.js环境推荐的标准方式。你可以使用 export 关键字导出一个或多个函数。
例如,创建一个文件 mathUtils.js:
// 定义函数 function add(a, b) { return a + b; } <p>function subtract(a, b) { return a - b; }</p><p>// 导出函数(命名导出) export { add, subtract };</p><p>// 或者直接在函数前导出 export function multiply(a, b) { return a * b; }</p>
在另一个文件中导入使用:
import { add, multiply } from './mathUtils.js'; <p>console.log(add(2, 3)); // 5 console.log(multiply(2, 4)); // 8</p>
使用默认导出(Default Export)
如果你只想导出一个主要功能,可以使用 default 导出。
// singleFunc.js function greet(name) { return `Hello, ${name}!`; } <p>export default greet;</p>
导入时可以自定义名称:
import myGreet from './singleFunc.js'; console.log(myGreet('Alice')); // Hello, Alice!
在Node.js中使用CommonJS导出函数
在旧版Node.js环境中,使用 module.exports 或 exports 导出函数。
// utils.js (CommonJS) function sayHi(name) { return `Hi, ${name}`; } <p>function double(x) { return x * 2; }</p><p>// 导出多个函数 module.exports = { sayHi, double };</p>
导入使用 require:
const { sayHi, double } = require('./utils'); <p>console.log(sayHi('Bob')); // Hi, Bob console.log(double(5)); // 10</p>
模块导出的核心作用:功能暴露与封装
通过模块导出机制,你可以:
- 只暴露需要的函数,隐藏内部实现细节
- 避免全局变量污染
- 提升代码组织性和可维护性
- 支持 tree-shaking(ESM下未使用的函数不会被打包)
合理使用命名导出和默认导出,能让其他开发者更清晰地使用你的模块。
基本上就这些。根据运行环境选择ES6模块或CommonJS,定义函数后通过对应语法导出即可。