//定義模塊 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();