zoukankan      html  css  js  c++  java
  • 简单写个闭包,以及闭包用途

    那么什么是闭包呢?专业术语咱也说不出来,在js中的我的理解就是函数嵌套函数,例如这样的

    function xx(){
        function yy(){
         
        };
    };
    <body> <ul> <li>aaaaaaaaaaa</li> <li>bbbbbbbbbbb</li> <li>cccccccccccccc</li> <li>bbbbbbbbbbb</li> </ul> </body>
    
    1 <script type="text/javascript">
     2     window.onload=function(){
     3         var oLis=document.getElementsByTagName('li');
     4         for(var i=0;i<oLis.length;i++){
     5             oLis[i].onclick=function(){
     6                 alert(i);//弹出来的总是4,为什么呢?
     7             };
     8         }
     9         
    10     };
    11 </script>
    

     因为onclick事件是当你点击的时候才会触发的,但是当你点击的时候for循环早就执行完毕了,所以每次点击都是最后一个值,说漏了,在执行for循环的时候其实function(){alert(i);};是没有执行的,您可以用火狐调试看看.

      那么怎么样才能让它弹出0,1,2。。。呢? "√"就是闭包

     详情请看:这是这位师兄的随笔,小弟我学习了一下:

    http://www.cnblogs.com/xhk-yjp/archive/2012/08/29/xhk-yjp-jsbb.html

    把我个人,学到的记录了下了,仅此而已,尊重作者!
  • 相关阅读:
    12-29 批量删除
    12-29 注册审核
    12-25造数据库面向对象
    12-23 会话保持
    2016-12-19 php修改数据库数据
    12-18数据访问
    12-16php测试题
    1027 制作表格
    1027 超链接
    1027 HTML
  • 原文地址:https://www.cnblogs.com/linkhtml/p/5498983.html
Copyright © 2011-2022 走看看