js模块化提供了三种规范
1、commonjs规范,代表就是node.js 它是运行在服务器端的,适合后台开发,它不适合前端,因为前端的客户端是浏览器,浏览器追求异步加载,等待时间不能太长,如果非要运行在浏览器,则需要借助打包工具进行打包,解析
2、前端模块化的规范是AMD规范,全程叫async module defintion 异步模块加载机制
3、第三个模块化规范是es6
简单说下commonjs吧
comminjs是node的规范,但他是同步加载的,同步加载在浏览器是有弊端的,只要一个环节卡住了,后面的就没法执行。
模块化都是两个方向:
1是暴露模块 module.exports={} 本质就是暴露的是一个exports对象
2引入模块 require
上面说过,它是后台的规范,是运行在服务器端的。
自定义模块:
什么是自定义模块,顾名思义,就是自己自己写的模块,不依赖任何规范。
下面我举个例子
AMD规范的模块化:
require()函数接受两个参数:
——第一个参数是一个数组,表示所依赖的模块;
——第二个参数是一个回调函数,当前面指定的模块都加载成功后,它将被调用。加载的模块会以参数形式传入该函数,从而在回调函数内部就可以使用这些模块