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