模块的定义和模块之间的相互调用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/smalCat/article/details/82015571
    // 现代模块机制

    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
      }
    }())

猜你喜欢

转载自blog.csdn.net/smalCat/article/details/82015571