1. 程式人生 > >模組的定義和模組之間的相互呼叫

模組的定義和模組之間的相互呼叫

    // 現代模組機制

    var myModules = (function Manager() {
      var modules = {};
      function define(name, deps, impl) {
        //for迴圈作用是將模組管理器內的相關模組調出來,
          // 在管理器的作用域中展現,然後被impl呼叫,

        for (let i = 0; i < deps.length; i++) {
          deps[i] = modules[deps[i]];
        }
        //新的模組放進模組管理器內,同時利用apply方法呼叫模組的自身,將上下文執行環境繫結到模組
        //本身,同時將需要呼叫的模組,模組名作為引數傳入模組。
        // deps作為引數,傳進新模組impl,使其能夠呼叫模組管理器內的其他模組
        modules[name] = impl.apply(impl,deps);
      }

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

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