【发布时间】:2011-07-02 06:56:34
【问题描述】:
我正在启动一个新项目,我正在审查我的最佳实践,以尝试防止出现任何问题,并查看我养成了哪些坏习惯。
我对使用模块/子模块模式在 Javascript 中处理初始化序列的方式并不十分满意。
比方说,我的代码最终是这样的
FOO.init()
FOO.module1.init()
FOO.module2.init()
FOO.module3.init()
FOO.module4.init()
在全局范围内。
我实际上是在做(为简洁起见,省略了错误检查和详细信息):
var FOO = (function (me) {
me.init = function () {
for (var i in me.inits) {
me.inits[i]();
}
}
return me;
}(FOO || {}));
var FOO = (function (parent) {
var me = parent.module1 = parent.module1 || {};
me.init = function () {
}
parent.inits.push(me.init);
return parent;
}(FOO || {}));
$(document).ready(FOO.init);
用于初始化。
我知道我之前已经阅读过这方面的内容,但我现在无法找到合适的搜索词来查找这些文章。是否有一个经过深思熟虑和测试的模式来处理这样的初始化?
谢谢。
编辑:重新阅读本文后,我认为一些上下文会为答案提供信息。
就我而言,每个模块/子模块都在自己的文件中。基本模块定义站点的基本功能,子模块启用不同的功能。例如,一个子模块可以连接搜索框上的自动完成功能,另一个可以将静态标题图像变成旋转横幅。子模块由 CMS 启用/禁用,所以我真的很想分离基本模块内的显式调用,这样一切都可以由 CMS 管理。我还知道有特定于 CMS 的方法可以实现这一点,但我正在寻找一种通用的 Javascript 模式来执行此操作,以在可能使用不同 CMS 的项目之间提供一致性和可重复性。
【问题讨论】:
标签: javascript design-patterns