如何构造大型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将引入模块。