闭包是指在JavaScript中,内部函数总是可以访问其所在的外部函数中声明的参数和变量,即使在其外部函数被返回(寿命终结)了之后。
同时了以减少全局变量的污染
// 减少全局变量的污染 function outer() { var a = 10; function inner() { alert(a++); } return inner; } //alert(a);//a是局部变量 在这不能访问 var test = outer(); test(); //使用闭包访问 a 扩大了a的作用域
简单模块
var User = (function(winObj){ var i = 111; var jsonObj = winObj.$ = { "add" : function(){ alert('添加用户' + i); }, "delect" : function(){ alert('删除用户'); }, "update" : function(){ alert('修改用户'); } } return jsonObj; })(window); User.add(); var Category = (function(){ var i = 222; return{ "add" : function(){ alert('添加商品种类' + i); }, "delect" : function(){ alert('删除商品种类'); }, "update" : function(){ alert('修改商品种类'); } } })(); Category .add()
第一个模块是添加、删除用户等操作
第二个是在第一个的基础上做简单的删改,做出来的商品种类的模块