Javascript 无需包装代码的脚本加载程序?

Javascript 无需包装代码的脚本加载程序?,javascript,requirejs,amd,modular,Javascript,Requirejs,Amd,Modular,我希望将我的JavaScript代码模块化到不同的文件中,但希望使用本机JavaScript对象这样做: (function ($, _, val) { return { myTest: 'abc', init: function (options) {...} }; })(jQuery, _, 'utils/validation'); 有这样的脚本加载程序吗?我使用过RequireJS,不想将我的几个文件都打包在define/require中,尽管我非常喜

我希望将我的JavaScript代码模块化到不同的文件中,但希望使用本机JavaScript对象这样做:

(function ($, _, val) {

   return {
     myTest: 'abc',
     init: function (options) {...}
   };

})(jQuery, _, 'utils/validation');

有这样的脚本加载程序吗?我使用过RequireJS,不想将我的几个文件都打包在define/require中,尽管我非常喜欢r.Optimizer的想法。任何帮助或经验都将不胜感激

如果我理解您的意思,您希望在加载页面后加载一个单独的JavaScript文件。我举了一个例子,展示了如何让一个模块分布在多个文件上,并在以后的调用中加载该模块的其他部分。首先,在这里可以找到不同模块模式的一个很好的总结:在这里可以找到显示JavaScript加载程序的一个非常好的代码片段:

我的模块名为myModule,它在初始加载期间获得三个函数:addNumber、doOperations和difNumber。然后在加载文档后,我们将对doOperations的回答存储在tmp中。之后,我们希望加载multiply.js脚本,以便myModule具有multNumbers函数,因此我们使用文件的URL调用loadScript,并给它一个回调,将乘法打印到控制台

这是我的密码:

HTML文件

<html>
   <head>
      <title>Module Pattern</title>
      <meta charset="UTF-8">
      <script>
         var myModule = (function(my) {
            my.addNumbers = function(a, b) {
               return a + b;
            };
            return my;
         }(myModule || {}));
      </script>
      <script>
         var myModule = (function(my) {
            my.doOperations = function(a, b) {
               return{
                  c: my.addNumbers(a, b),
                  d: my.difNumbers(a, b)
               };
            };
            return my;
         }(myModule || {}));
      </script>
      <script>
         var myModule = (function(my) {
            my.difNumbers = function(a, b) {
               return a - b;
            };
            return my;
         }(myModule || {}));
      </script>
      <script>
         function loadScript(url, success) {
            var script = document.createElement("script");
            script.src = url;
            var head = document.getElementsByTagName("head")[0],
                    done = false;
            script.onload = script.onreadystatechange = function() {
               if (!done && (!this.readyState ||
                       this.readyState === "loaded" ||
                       this.readyState === "complete")) {
                  done = true;
                  success();
                  script.onload = script.onreadystatechange = null;
                  head.removeChild(script);
               }
            };
            head.appendChild(script);
         }
      </script>
      <script>
         function main() {
            var tmp = myModule.doOperations(5, 6);

            loadScript("multiply.js", function() {
               console.log(myModule.multNumbers(7, 9));
            });
            console.log(tmp.c);
            console.log(tmp.d);
         }
      </script>
   </head>
   <body onload="main();">
      <div>I do operations</div>
   </body>
</html>
var myModule = (function(my) {
   my.multNumbers = function(a, b) {
      return a * b;
   };
   return my;
}(myModule || {}));