1. namespace('math', [], function(){
    2. function add(a, b) { return a + b };
    3. function sub(a, b) { return a - b };
    4. return {
    5. add,
    6. sub
    7. }
    8. });
    9. namespace('calculator', ['math'], function(m){
    10. var action = 'add';
    11. function compute(a, b){
    12. m[action](a, b);
    13. }
    14. return {
    15. compute
    16. }
    17. });
    1. var namespace = (function () {
    2. var cache = {};
    3. return function createModule(name, deps, fn) {
    4. deps = deps.map(function (depsName) {
    5. return cache[depsName];
    6. });
    7. cache[name] = fn.apply(null, deps);
    8. return cache[name];
    9. };
    10. })();