模块化
最初的模块化iife是为了防止命名空间污染,变量混乱等原因而出现。之后组件发展成为提取公用代码 提升代码复用性 减少独立功能复杂度 将不同功能的代码封装后方便组装使用
iife
利用闭包定义一个模块
let head = (() => {
let data = a;
return {
getAdd: () => ++count;
reset: () => {
count = 0;
}
}
})();
// 可以通过以下方式调用 获取
head.getAdd()
head.reset()
Commonjs
通过module + exports 去对外暴露接口,通过require来调用其他模块。node制定的,因为是同步拉去依赖的,所以一般只适用于服务端。
优点:
CommonJS率先在服务端实现了,从框架层面解决依赖、全局变量污染的问题
缺点:
主要针对了服务端的解决方案。对于异步拉取依赖的处理整合不是那么的友好。
// 引入部分
const dependencyModule1 = require(./dependencyModule1);
const dependencyModule2 &#

本文详细介绍了JavaScript的模块化实现,包括iife(立即执行函数表达式)、CommonJS、AMD(异步模块定义)、UMD(通用模块定义)、CMD(Common Module Definition)和ES6的模块化。分析了各种模块化的优缺点,如iife防止命名空间污染,CommonJS适用于服务端,AMD适合浏览器异步加载,ES6模块化提供了一种统一的形态。
最低0.47元/天 解锁文章
1149

被折叠的 条评论
为什么被折叠?



