模块:简而言之就是一个一个的功能。
模块化:将一个大文件拆分成独立并相互依赖的小模块,这个过程就叫模块化。
好处:①避免命名冲突。
②更好的分离,按需加载。
③具有良好的复用性。
④方便维护。
常用的模块化开发的方案:
1、commonJS-------用module.exports将模块导出,可以导出对象、函数、ES5类,但是不能导出ES6类,用require导入模块。是同步的。
2、AMD-----依赖前置,准备工作全部做完开始执行,用define定义模块,用require调用模块,在html中调用js文件用data-main属性。AMD不支持返回函数,只能导出对象,是异步的。
3、CMD-----依赖就近,后期requireJS也支持了CMD规范,所以CMD渐渐不用了。
4、ES6-----用export或者export default导出,用import导入。这种方法最简单快捷,可以利用webpack中的babel转成es5的。