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;
}
function subtract(a, b) {
return a - b;
}
// 导出函数(命名导出)
export { add, subtract };
// 或者直接在函数前导出
export function multiply(a, b) {
return a * b;
}
在另一个文件中导入使用:
import { add, multiply } from './mathUtils.js';
console.log(add(2, 3)); // 5
console.log(multiply(2, 4)); // 8
使用默认导出(Default Export)
如果你只想导出一个主要功能,可以使用 default 导出。
// singleFunc.js
function greet(name) {
return `Hello, ${name}!`;
}
export default greet;
导入时可以自定义名称:
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}`;
}
function double(x) {
return x * 2;
}
// 导出多个函数
module.exports = {
sayHi,
double
};
导入使用 require:
const { sayHi, double } = require('./utils');
console.log(sayHi('Bob')); // Hi, Bob
console.log(double(5)); // 10
模块导出的核心作用:功能暴露与封装
通过模块导出机制,你可以:
- 只暴露需要的函数,隐藏内部实现细节
- 避免全局变量污染
- 提升代码组织性和可维护性
- 支持 tree-shaking(ESM下未使用的函数不会被打包)
合理使用命名导出和默认导出,能让其他开发者更清晰地使用你的模块。
基本上就这些。根据运行环境选择ES6模块或CommonJS,定义函数后通过对应语法导出即可。










