【发布时间】:2016-04-20 07:05:47
【问题描述】:
我刚刚开始使用 javascript 模块,我想确保我做得正确。
下面是我所遵循的方法的一个示例,基于我读到的关于 here 的“松散增强模式”
//myApp.js
var myApp = {};
//someModule1.js
(function (ma) {
ma.someModule1.DoStuff = function () {
alert("hi");
};
return ma;
}(myApp || {}));
//someModule2.js
(function (ma) {
ma.someModule2.DoMoreStuff = function () {
alert("ho");
};
return ma;
}(myApp || {}));
//someModule3.js
myApp.someModule1.DoStuff();
myApp.someModule2.DoMoreStuff();
myApp.js 中的 myApp 变量将是唯一全局公开的变量,所有其他模块及其功能只能通过此变量访问。
someModule3.js 不一定是一个模块,而是任何想要访问 myApp 对象属性的任意 javascript(在定义了适当的模块之后)。
我不是 100% 清楚的部分是:(myApp || {}, jQuery) 那部分叫是什么,它到底在做什么(我知道整个事情是一个闭包,但我只是不明白最后一部分是如何工作的)? 看起来“ma”最初什么都不是,我在闭包的主体中添加了一个函数,然后返回 ma。此时myApp只有一个功能。
在结尾处 (myApp || {}),它实际上是在说“ma 不是什么,它实际上被称为 myApp,如果它存在,我会将这些函数附加到该对象。”
这是对的还是我错了?
【问题讨论】:
标签: javascript jquery