模块模式(Module Pattern)提供了一种代码封装的方式,可以优雅地创建非耦合的代码块。
它是利用即时函数为对象创建私有变量和特权方法。严格来说,Javascript中没有私有成员的概念,所有的对象属性都是公有的。不过,任何在函数中定义的变量,都可以认为是私有变量,因为不能在函数的外部访问这些变量。而特权方法作为闭包有权访问在函数中定义的所有变量和函数。
模块模式是多个概念的结合,包括:
闭包
命名空间
即时函数
私有变量和特权方法
模块模式的语法大概如下:
KUI.utils.namespace("KUI.module.module1");
KUI.module.module1 = (function() {
var utils = KUI.utils,
// private properties
string1 = "string1",
array1 ; [];
// private function
function privateFn() {
}
return {
// public properties
publicProperties : "publicProperties",
// public function
publicFn : function(a) {
},
publicFn1 : privateFn
};
})();
特别地,可以通过简单即时函数创建块级作用域:
(function(){ // })();
Kingle's Blog: http://www.cnblogs.com/Kingle/
浙公网安备 33010602011771号