JavaScript中的 闭包

来源:互联网 发布:php rides 编辑:程序博客网 时间:2024/04/29 00:45
闭包:是指有权访问另一个函数作用域中的变量的函数,创建闭包的最常见的方式就是在一个函数内创建另一个函数通过另一个函数访问这个函数的局部变量

闭包的特性

1.函数嵌套函数
2.函数内部可以引用外部的参数和变量
3.参数和变量不会被垃圾回收机制回收

使用闭包的好处

1.希望一个变量长期驻扎在内存中
2.避免全局变量的污染
3.私有成员的存在

使用闭包的缺点

1.变量常驻内存,会增大内存使用量
2.使用不当造成内存泄漏
3.私有成员的存在
例子:

一、全局变量的累加

<script>vara=1;functionabc(){        a++;        alert(a);}abc();              //2abc();            //3</script>

二、局部变量的累加

functionaaa(){            vara=1;            returnfunction(){          alert(a++)          };          }                varfun=aaa();          fun();// 1 执行后 a++,,然后a还在~          fun();// 2           fun=null;//a被回收!!
三、函数声明

<script>functionabc(){        alert(123);}abc();</script>
四、函将函数声明变为一个表达式
<script>(function(){var a = 10;        alert(a);})();                  //然后通过()直接调用前面的表达式即可,因此函数可以不必写名字;</script>
闭包的使用方法
<script>varabc=(function(){      //abc为外部匿名函数的返回值        vara=1;        returnfunction(){                a++;                alert(a);        }})();abc();    //2 ;调用一次abc函数,其实是调用里面内部函数的返回值    abc();    //3abc = null;</script>
六、闭包的使用方法
<span style="font-size:18px;"><script>varfun=(function(){        vara=10;        functionbbb(){                a++;                alert(a);        }        functionccc(){                a++;                alert(a);        }        return{                b:bbb,            //json结构                c:ccc        }})();fun.b();    //12fun.c()      //13</script></span>
七、闭包的使用方法
<script>    window.onload=function(){            varp=document.getElementsByTagName('p');            for(vari=0;i<p.length;i++){                    (function(i){                            p[i].onclick=function(){                                    alert(i);                            };                    })(i);            }            };</script>
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 牛犊子出生3天喘怎么办 猪高烧不退不吃怎么办 苹果6刷机失败怎么办 uc能看不能下怎么办 苹果6s铃声太小怎么办 苹果6铃声声音小怎么办 苹果7来电铃声小怎么办 红米手机声音小怎么办 微信安装不上去怎么办 6s无法安装微信怎么办 苹果4微信版本低怎么办 新手机没有微信怎么办 新手机登陆微信怎么办 新号码被注册过怎么办 微信注册不了怎么办啊 苹果4铃声不响怎么办 苹果6黑屏没反应怎么办 苹果7卡机黑屏了怎么办 苹果7手机铃声小怎么办 支付宝发现套现怎么办 空调滴水管断了怎么办 地漏下水管断了怎么办 脸上长白色糠疹怎么办 腋下长白色的毛怎么办 饥荒电羊死光了怎么办 6s储存空间虚满怎么办 大胸下垂穿婚纱怎么办 美团签约成功后怎么办 拍婚纱照笑不出来怎么办 长得丑拍婚纱照怎么办 失恋了怎么办才能最快走出来 眼镜大了往下掉怎么办 眼镜带着往下掉怎么办 眼镜腿松了怎么办妙招 眼镜框大了总掉怎么办 吃不下饭恶心想吐怎么办 买到苹果翻新机怎么办 欠装修款不给怎么办 老板欠工资跑了怎么办 挖机老板欠工资怎么办 欠工程款耍赖不给怎么办