模塊

//定義模塊
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); //impl:綁定的對象,deps:參數
    }

    function get(name) {
        return modules[name];
    }

    return {
        define: define,
        get:get
    }
}) ();


MyModules.define("bar",[],function() {

    function hello(who) {
        console.log("Let me introduce: " + who);
    }
    return {
        hello:hello
    }
});

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

var bar = MyModules.get("bar");
bar.hello("sssssssssss");

var foo = MyModules.get("foo");
foo.awesome();
相關文章
相關標籤/搜索