首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对较大的项目使用模块模式

对较大的项目使用模块模式
EN

Stack Overflow用户
提问于 2010-04-27 09:27:53
回答 3查看 5.2K关注 0票数 18

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

使用模块模式,我想将项目组织成这样的结构:

代码语言:javascript
复制
project.arm.object.method();

其中" project“是我的全局项目名称,"arm”是项目的子部分或分支," object“是单个对象,依此类推方法和属性。

然而,我不确定我应该如何声明和组织"project“下的多个”arm“和”object“。

代码语言:javascript
复制
var project = window.project || {};
project.arm = project.arm || {};

project.arm.object = (function() {

    var privateVar = "Private contents.";

    function privateMethod() {
        alert(privateVar);
    }

    return {
        method: privateMethod
    };

}());

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

EN

Stack Overflow用户

发布于 2010-04-27 10:28:55

Dojo的dojo.declare非常适合这类事情,因为它

使用紧凑的符号为继承和原型扩展创建一个构造函数。

如果只是移除这种样板,这也是非常方便的:

代码语言:javascript
复制
var project = window.project || {};
project.arm = project.arm || {};

如果您只是想要这个特性,那么您可以使用dojo.setObject,但是当然,编写一些东西来做同样的事情是微不足道的。

代码语言:javascript
复制
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.requiredojo.provide这样的包含机制时。

票数 3
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2718172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档