【发布时间】:2011-10-19 16:17:52
【问题描述】:
如何根据模块模式访问/创建子模块?
我希望能够从我的 Modules.js 主文件中的子模块访问方法。
模块.js
var Module = (function() {
function A(){
console.log("Module: A");
B();
};
function B(){
console.log("Module: B");
Module.Utils.C(); /* Here is the problem */
};
return {
A:A,
B:B
}
} ());
$(function() {
Module.A();
});
Module.Utils.js
var Module = Module ? Module : {};
Module.Utils = (function() {
var settings = {
x : 1,
y : 2
};
function C(){
console.log("Module.Utils: C");
};
function D(){
console.log("Module.Utils: D");
};
return {
C:C,
D:D
}
}());
【问题讨论】:
-
除非您在定义子模块之前调用主模块函数,否则我看不出这会是什么问题。但是,您在 module.utils.js 中确实存在语法错误。错字?
-
这行
var Module = Module ? Module : {};的问题是,如果你的子模块在主模块之前加载,主模块的声明之后会擦除子模块的声明,不会抛出异常.
标签: javascript design-patterns module