首页 > 其他 > 详细

模块机制

时间:2015-05-22 18:36:49      阅读:201      评论:0      收藏:0      [点我收藏+]

大多数模块依赖加载器/管理器本质上都是将这种模块定义封装进一个友好的API。

var MyModules = (function(){
var modules = {};
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];
}
return {
define : define,
get : get
}
})();

 

MyModules.define(‘bar‘,[],function(){
function hello(who){
return ‘Let me introduce: ‘ + who;
}
return {
hello : hello
}
});


MyModules.define(‘foo‘,[‘bar‘],function(bar){
var hungry = ‘hippo‘;
function awesome(){
console.log(bar.hello(hungry).toUpperCase());
}
return {
awesome : awesome
}
});

var foo = MyModules.get("foo");
foo.awesome();

 

这段代码的核心是modules[name] = impl.apply(impl,deps),为了模块的定义引入了包装函数(可以传入任何依赖),并且将返回值,也就是模块的API,储存在一个根据名字来管理的模块列表中。

模块机制

原文:http://www.cnblogs.com/jsmiao/p/4522969.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!