Chow's Notes

js模块(函数和闭包来构造模块)

模块模式的一般形式:一个定义了私有变量和函数的函数,利用闭包创建可以访问私有变量和函数的特权函数,最后返回这个特权函数,或者把他们保存到一个可以访问的地方,使用模块可以摒弃全局变量的使用,促进了信息隐藏和其他优秀的设计实践,对于js应用程序 的封装或者构造单例对象,模块模式非常有效

例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Function.prototype.method=function(mthname,fun){
this.prototype[mthname]=fun;
return this;
}
String.method("test",function(){
var entity={"lt":"<","gt":">"};//只有内部函数与该私有变量关联
return function(){
return this.replace(/&([^&;]+);/g,function(a,b){
var r=entity[b];
return typeof r==="String" ? r:a;
})
}//返回这个实际的函数
}()//立即调用);
var str="<";
document.write(str.test())

模块化编程详述,可参见该日志http://www.ruanyifeng.com/blog/2012/10/javascript_module.html