现代模块机制

摘自《你不知道的js》这本书,第五章第五节:现代模块机制。

感觉这个很牛很高大上,但是不能完全看懂,抄下来,慢慢品读理解:

var MyModules = (
    function Manager(){
        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(){
            return modules[name];
        }
        return {
            define,
            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 bar = MyModules.get('bar');
var foo = MyModules.get('foo');

console.log(
    bar.hello('hippo')
);
foo.awesome();

  

posted @ 2024-11-04 14:11  充实地生活着  阅读(2)  评论(0编辑  收藏  举报