//包管理器的核心代码
var myModule = (function(){
//总模块
var modules = {};
function define(name,deps,impl){
for(var i=0;i<deps.length;i++){
//将模块依赖的路径转为依赖的数据
deps[i] = modules[deps[i]];
}
//将模块的路径key和返回值value绑定到总模块modules中。
modules.name = impl.apply(impl,deps);
}
function get(name){
return modules[name];
}
return {
get: get,
define: define
}
})()
复制代码
//相当于define
myModule.define('components/common',[],function(){
var a = 23;
return {
a: a
}
})
myModule.define('components/info',['components/common'],function(common){
function foo(){
var a = common.a;
console.log(a);
}
return {
foo: foo
}
})
var info = myModule.get('components/info'); //相当于require/import
复制代码