我对使用Module模式来更好地组织我未来的项目很感兴趣。不幸的是,模块模式只有几个简短的教程和概念验证示例。
使用模块模式,我想将项目组织成这样的结构:
project.arm.object.method();其中" project“是我的全局项目名称,"arm”是项目的子部分或分支," object“是单个对象,依此类推方法和属性。
然而,我不确定我应该如何声明和组织"project“下的多个”arm“和”object“。
var project = window.project || {};
project.arm = project.arm || {};
project.arm.object = (function() {
var privateVar = "Private contents.";
function privateMethod() {
alert(privateVar);
}
return {
method: privateMethod
};
}());在定义复杂的模块结构时,是否有任何最佳实践或约定?我应该只在最后一个手臂/对象的下面声明一个新的手臂/对象吗?
发布于 2010-04-27 10:28:55
Dojo的dojo.declare非常适合这类事情,因为它
使用紧凑的符号为继承和原型扩展创建一个构造函数。
如果只是移除这种样板,这也是非常方便的:
var project = window.project || {};
project.arm = project.arm || {};如果您只是想要这个特性,那么您可以使用dojo.setObject,但是当然,编写一些东西来做同样的事情是微不足道的。
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.require和dojo.provide这样的包含机制时。
https://stackoverflow.com/questions/2718172
复制相似问题