作用:当需要在原来的代码基础上增加新的函数时,如果函数名相同,新的函数会覆盖原来的函数,为了避免覆盖,将后一个函数写成封闭函数,一开始就运行。
//写法一 (function(){ ...... })(); //写法二 !function(){ ..... }() //写法三 ~function(){ ..... }()传参和返回值:和java一样。
function myalert(a,b){ //return a+b; return [a,b] } myalert(1,2);说明:返回多个参数时需要使用一个数组,不可以直接写return a,b;否则报错!
说明:return关键字可以结束函数运行、阻止程序的默认行为。
闭包定义:函数嵌套函数,内部函数可以引用外部函数的参数和变量,参数和变量不会被垃圾回收机制收回
function func1(i){ var a = 1; function func2(j){ i += a; j += a; console.log(i); console.log(j); } return func2; } var func2 = func1(2);//将闭包函数提取出来 func2(3);用法:私有变量计数器
function func1(i){ var a = 0; function func2(j){ a++; i++; j++; console.log(a); console.log(i); console.log(j); } return func2; } var func2 = func1(0); for(var i,i<10,i++){ func2(0); } //a和i都可以作为变量计数器,使得全局变量与闭包函数计数变量分开
作者:天宇之游