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
- JavaScript中的"闭包"
- javascript中的闭包
- JavaScript中的闭包
- javaScript中的闭包
- javascript中的闭包
- Javascript中的闭包
- JavaScript中的闭包
- javascript 中的闭包
- javascript中的闭包
- JavaScript中的闭包
- javascript中的闭包
- JavaScript中的闭包
- javascript中的闭包
- JavaScript中的闭包
- javascript中的闭包
- javaScript中的闭包
- javascript中的闭包
- JavaScript中的闭包
- web前端-HTML头部-008
- Android Dialog 系统样式讲解及透明背景
- 【第6周 项目3 - 括号的匹配】
- Android Studio中Gradle编译配置
- 第五周项目2-建立链式栈的算法库
- JavaScript中的 闭包
- 第5周项目1-建立顺序栈算法库
- js闭包理解
- 第五周项目2建立链栈算法库
- [Javascript] chrome中调试技巧
- ios Xcode制作framework
- javascript 方法实现千位分隔符(面试题)
- K - Semi-prime H-numbers 筛选数
- python模块之binascii