写在前面
Module模式最初被定义为一种在传统软件工程中为类提供私有和公有封装的方法。而在Javascript中,Module模式用于进一步模拟类的概念,通过这种方式,能够使一个单独的对象拥有公有/私有的方法和变量,从而屏蔽来自全局作用域的特殊部分。产生的结果是:函数名与在页面上其他脚本定义的函数冲突的可能性降低。
应当注意的一点是:在Javascript没有private访问修饰符因此算不得真正的私有,而是通过函数作用域来模拟私有这个概念。在Module模式内由于闭包的存在,声明的变量和方法只在该模式内部可用,但在返回对象上定义的变量和方法是可以对外访问的。