介绍
AMD也是一种JavaScript模块化规范,与CommonJs最大的不同在于它采用异步的方式加载依赖的模块,最近正好看了下,这里简单自己实现下
示例代码
let factories = { };
/*
* modsName 模块名称
* depends 依赖
* factory 工厂函数
*/
function define(modsName, depends, factory) {
factories[modsName] = factory;
}
/*
* mods 要加载的模块
* callback 回调函数
*/
function require(mods, callback) {
let result = mods.map(function(name) {
return factories[name]();
});
callback.apply(null, result);
}
define('name', [], function() {
return '不粘锅';
});
define('age', [], function() {
return 11;
});
require(['name', 'age'], function(name, age) {
console.log(name, age);
});
复制代码
输出结果
这里我们看到已经正常输出,因为比较简单没有做详细说明,不理解的小伙伴可以自己敲几次,就可以理解了,大神请忽视。