简单的依赖加载器实现 发表于 2016-09-12 为了验证闭包的学习,有必要实现一个简单的依赖加载器。代码实现123456789101112131415161718192021222324252627282930var myModules=(function () { //保存所有定义的模块 var modules={}; /** *定义新模块,接收3个参数 *name:模块名 *deps:模块依赖的其他模块 *impl:模块的定义 **/ function define(name,deps,impl) { //遍历依赖每一项,取出每个模块 for (var i=0;i<deps.length;i++) { deps[i]=modules[deps[i]]; } //将新模块存储进模块池,并注入依赖 modules[name]=impl.apply(impl,deps); } //从模块池中取出模块 function get (name) { return modules[name]; } //暴露api return { define: define, get: get }})() 使用1234567891011121314151617181920myModules.define('bar',[],function () { function hello (who) { //代码体 } return { hello:hello }})myModules.define('foo',['bar'],function (bar) { functin hello2 () { //代码体 } return { hello2:hello2 }})var bar=myModules.get('bar');var foo=myModules.get('foo'); 内容转自《你不知道的Javascript》