闭包
//闭包是什么? 外部函数嵌套内部函数 并把内部函数返回
//闭包的特点? 1 内部函数可以使用外部函数的形参和变量 2 变量会永久存在在内存中 不会被系统回收
//闭包的应用(好处) 1 避免全局变量被污染 2 可以获取下标(两种写法,了解)
//垃圾回收机制
//当函数执行完毕,系统会自动回收函数和其内部局部变量所占的内存。当 再次调用函数时,重新申请内存
//闭包 函数嵌套时,在内部函数中可以使用外部函数的变量或者形参
//闭包中的变量在内存中永久存在
匿名函数自调用
//下面这种写法,函数会自动调用一次
// ( function(){} ) ();
(function(){
alert(111);
})();
//传形参的写法
(function(i){
alert(i);
})(2);
两个li点击事件 点击输出当前下标 用匿名函数+闭包
//写法一:
//外部函数是匿名函数自调用
//内部函数是onclick事件对应的函数
//在内部函数中使用了外部函数的形参i
/*for (var i=0;i<lis.length;i++) {
(function(a){
lis[a].onclick=function(){
alert(a);
}
})(i)
}*/
//写法二:
for (var i=0;i<lis.length;i++) {
lis[i].onclick=(function(i){
return function(){
alert(i);
}
})(i);
}
//需要掌握的
function aaa(){
var a=10;
return function(){
a++;
alert(a);
}
}
var c=aaa();
c();//11
c();//12