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