模块化
- CommonJS 同步加载模块
// moudle.js
exports.moudle = function() {'模块'}
// 引用整个moudle.js脚本会被执行一次,模块对象保存在缓存中,再次require直接缓存取
const moudle = require('moudle')
- AMD 异步模块加载 依赖前置
define(function() {'模块A'}) // 没有依赖其它模块 导出
define(['依赖模块A'], function() {'模块B'}) // 依赖其他模块 导出
require(['模块A'],function(moudleA) {'引入模块A之后执行'} )
require(['模块B'],function(moudleA) {'引入模块B之后执行'} )
- CMD 依赖就近 按需加载 用到才加载
require 导入其他参数 exports 导出的模块 module 模块相关的属性方法
define(function(require, exports, module) {// 模块代码});
const moudleA = require('模块A')
let a = moudleA.a
- ES6 静态引用,编译时执行,import 语句提升执行,模块输出的是值的引用,输出接口动态绑定