js闭包的使用场景

1.模块化代码
<script>
var abc = (function(){ //abc为外部匿名函数的返回值
var a = 1;
return function(){
a++;
alert(a);
}
})();
abc(); //2 ;调用一次abc函数,其实是调用里面内部函数的返回值
abc(); //3
</script>
这时是最基本的闭包模式,可以将变量完全限制在闭包内.
通过匿名函数减少了中间变量
2.模拟private变量:
function classA(){
    var privateaA = 1;
    function getA(){
      return privateaA; 
}
function setA(para){
privateaA = para; // 999
}
return {getA:getA,setA:setA}
  }
var obj = classA()

3.添加监听器时记录索引
var aLi = document.getElementsByTagName('li');
for (var i=0;i<aLi.length;i++){
aLi[i].onclick = function(){ //当点击时for循环已经结束 alert(i); }; }
<ul> <li>123</li> <li>456</li> <li>789</li> <li>010</li> </ul>wad

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。 一、变量...
    zock阅读 1,085评论 2 6
  • 《ijs》速成开发手册3.0 官方用户交流:iApp开发交流(1) 239547050iApp开发交流(2) 10...
    叶染柒丶阅读 5,364评论 0 7
  • ECMAScript关键字 delete do else finally function in instance...
    doudou2阅读 731评论 0 0
  • 脚下生风 你与时间赛跑 你说要赢过时间 做时间的主人 你在寻找什么? 我在寻找未来 未来在哪里? 看,就在前面,在...
    驸惋阅读 295评论 3 8
  • 2017年8月3日,如是家人黄愈惠,种种子第3天 发心:我今不是为了我个人而闻思修,而是为了六道轮回一切如母有情众...
    愈惠阅读 371评论 3 3