如何构造大型JavaScript应用程序?

如何构造大型JavaScript应用程序?,javascript,Javascript,我尝试将模块组织到名称空间中(参见下面的示例),并尽可能少地依赖最新的命名巧妙的JavaScript库或框架。我知道这个问题没有令人难以置信的集中,但是这不是一个可扩展的方法吗?有没有其他方法可以扩展我的JavaScript,我应该知道吗? 我应该补充一点,这是一个chrome应用程序 var MODULE_A = (function() { var A_CONSTANT_NUMBER = 1; var myPrivateVar_ = 2; var privateMethod1 =

我尝试将模块组织到
名称空间中(参见下面的示例),并尽可能少地依赖最新的命名巧妙的JavaScript库或框架。我知道这个问题没有令人难以置信的集中,但是这不是一个可扩展的方法吗?有没有其他方法可以扩展我的JavaScript,我应该知道吗?

我应该补充一点,这是一个chrome应用程序

var MODULE_A = (function() {
  var A_CONSTANT_NUMBER = 1;
  var myPrivateVar_ = 2;

  var privateMethod1 = function() {
    console.log("A.privateMethod1");
  };

  var privateMethod2 = function() {
    console.log("A.privateMethod2");
  };

  return {
    aPublicVar1: 3,

    publicMethod1: function() {
      console.log("A.publicMethod1");
    },

    publicMethod2: function() {
      console.log("A.publicMethod2");
    }
  }
})();
看一看。添加依赖项解析/加载也使您建议的内容变得非常简单。

您是否尝试过使用或任何其他依赖项管理器

这里有一个很好的讨论,对你的问题很有帮助。
全局名称空间并没有为您提供足够的现代模块系统所能提供的好处

如果您正在编写节点应用程序,则应该考虑使用commonjs,如果您正在编写浏览器,则应该考虑可能使用带有requirejs的amd。两者都使您能够正确定义一个模块对另一个模块的依赖关系,提供正确的封装,最重要的是为您跟踪依赖关系图。Amd进一步为您提供了运行时异步加载,这很好,但也带来了一些额外的麻烦


像这样适当地封装模块,可以更好地构造可以无限扩展的大型代码库。并不是说名称间距在这里甚至不是问题,名称是从文件路径和/或模块配置派生的。在本地,您可以根据需要命名返回值或模块导出。

我建议使用requirejs方法。查看DICommonJS(由Node.js和npm使用)+browserify:。此外,ES6将引入模块。