Javascript 在大型项目中使用模块模式

Javascript 在大型项目中使用模块模式,javascript,module-pattern,Javascript,Module Pattern,我对使用模块模式更好地组织我未来的项目感兴趣。不幸的是,模块模式只有一些简短的教程和概念验证示例 使用模块模式,我希望将项目组织到这种结构中: project.arm.object.method(); 其中“project”是我的全局项目名称,“arm”是项目的一个子部分或分支,“object”是单个对象,依此类推到方法和属性 然而,我不确定如何在“项目”下声明和组织多个“手臂”和“对象” 在定义复杂的模块结构时,是否有任何最佳实践或约定?我是不是应该在最后一个手臂下声明一个新的手臂/物体?这

我对使用模块模式更好地组织我未来的项目感兴趣。不幸的是,模块模式只有一些简短的教程和概念验证示例

使用模块模式,我希望将项目组织到这种结构中:

project.arm.object.method();
其中“project”是我的全局项目名称,“arm”是项目的一个子部分或分支,“object”是单个对象,依此类推到方法和属性

然而,我不确定如何在“项目”下声明和组织多个“手臂”和“对象”


在定义复杂的模块结构时,是否有任何最佳实践或约定?我是不是应该在最后一个手臂下声明一个新的手臂/物体?

这里有一篇关于你所追求的东西的好文章

人们喜欢这样做的方式有很多细微差别,但您称之为模块模式(命名范围)的主要好处是不会弄乱全局名称空间,这有助于在引入其他库等时保持整洁,并避免名称冲突

如何在其中组织名称和嵌套作用域在很大程度上取决于个人喜好。

Dojo非常适合这种情况,因为它

为继承和原型扩展使用紧凑表示法创建构造函数

即使只是移除这种锅炉板,也非常方便:

var project = window.project || {};
project.arm = project.arm || {};
如果你只是想要这个功能,那么你可以使用,但是当然,写一些东西来做同样的事情是微不足道的

dojo.setObject("project.arm.object" (function() {
    var privateVar = "Private contents.";

    function privateMethod() {
        alert(privateVar);
    }

    return {
        method: privateMethod
    };
}()));

我最近在一个大型JavaScript项目中使用了
dojo.declare
/
dojo.setObject
(86个文件,7K+行(不包括注释和空行)),让一切都井井有条、易于管理是件轻而易举的事,特别是当您有和这样的包含机制时。

这只是一个不错的编程建议,仅此而已。
dojo.setObject("project.arm.object" (function() {
    var privateVar = "Private contents.";

    function privateMethod() {
        alert(privateVar);
    }

    return {
        method: privateMethod
    };
}()));