現代模組機制

充实地生活着發表於2024-11-04

摘自《你不知道的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();

  

相關文章