闭包:是指有权访问另外一个函数作用域中的变量的函数。创建闭包的常见方式就是在一个函数内部创建另外一个函数。
在javascript中没有块级作用域,一般为了给某个函数申明一些只有该函数才能使用的局部变量时,我们就会用到闭包,这样我们可以很大程度上减少全局作用域中的变量,净化全局作用域。
闭包的好处:
不增加额外的全局变量,执行过程中所有变量都是在匿名函数内部。使用闭包有如上的好处,当然这样的好处是需要付出代价的,代价就是内存的占用。
//闭包的基本写法:(function(){ do someting})();//这个你就理解为定义一个匿名函数并立即执行//带参数的话就这样:(function(形参){ do someting})(实参);
(function($){ $("div p").click(function(){alert("cssrain!")});})(jQuery); //一个闭包就是等于function tempFunction($){ //创建一个以$为形参的函数 $("div p").click(....);}tempFunction(jQuery); //传入实参jQuery执行函数.
//变量的作用域 function bobo() { var a = 1; //只在bobo函数体中有效 b = 1; //声明了一个全局变量,在整个