Module模式
基本的module模式:
var blogModule = (function () {
var my = {},privateName="博客园";
function privateAddTopic (date) {
//do something
}
my.name = privateName;
my.add = function(date){
privateAddTopic(date)
}
return my;
}())
上面的代码声明了一个全局变量blogModule,并且带有2个可访问的属性:blogModule.add和blogModule.name,除此之外,其它代码都在匿名函数的闭包里保持着私有状态。同时根据上面传入全局变量的例子,我们也可以很方便地传入其它的全局变量。
高级的Module模式
扩展
var blogModule = (function (my) {
my.AddPhoto = function () {
//添加内部代码
};
return my;
} (blogModule));
松耦合
var blogModule = (function (my) {
// 添加一些功能
return my;
} (blogModule || {}));
blogModule.CommentSubModule = (function () {
var my = {};
// ...
return my;
} ());