ES6模块导出语法(浏览器中执行)
javascript
// 导出
export {Jt as K, $t as a, Xt as h};
// 导入
import {K as x, a as K, h as q} from "./module.js";
转成CommonJS格式(Node.js中执行)
javascript
// 导出
module.exports = {K: Jt, a: $t, h: Xt};
// 导入-方法1
const {K: x, a: K, h: q} = require('./module.js');
// 导入-方法2
// const mymodule = require('./module.js');
// x = mymodule.K
// K = mymodule.a
// q = mymodule.h
其他说明
在ES6模块系统中,export
语句中的as
关键字用于重命名导出的变量或函数。这个语法允许你指定导出的名称(K
、a
、h
)和本地变量的名称(Jt
、$t
、Xt
)。这样,在导入模块时,你可以使用导出的名称来引用这些变量或函数。
在CommonJS模块系统中,module.exports
对象用于导出模块的内容。这个对象是一个普通的JavaScript对象,其属性可以直接被设置或修改。当你使用module.exports
时,你实际上是在定义一个对象,其属性的键是导出时使用的名称,而属性值是要导出的变量或函数。
这就是为什么在转换时,映射关系看起来是相反的:
- 在ES6模块中,
export { Jt as K }
表示将本地变量Jt
导出为K
。 - 在CommonJS中,
module.exports = { K: Jt }
表示创建一个对象,其键是K
,值是变量Jt
。
这两种语法结构在表面上看起来相反,但实际上它们都是在做相同的事情:创建一个外部可见的映射,将内部的变量或函数关联到特定的名称上。在ES6模块中,这个映射是在导出时创建的,而在CommonJS中,这个映射是在module.exports
对象上设置的。