封闭函数,闭包

2018-12-12  本文已影响0人  张露锋
(function () {
        var str = '这是我的网页';
        alert(str);
    })();

    /* !function () {
        var str = '这是我的网页';
        alert(str);
    }()*/
    ~function () {
       var str = '这是我的网页';
        alert(str);
    }()

封闭函数用 ! 或者 ~ 还有()()

闭包

  function aa(b) {
        var a = 12;
        function bb() {
            alert(a);
            alert(b);
        }
        return bb;
      }
    var cc = aa(24);
   //封闭函数写闭包 
   /*var cc =(function (b) {
         var a = 12;
          function bb() {
             alert(a);
            alert(b);
        }
        return bb;
   })(24);*/
    cc()

闭包就是函数里面有函数,也可以叫函数的嵌套

闭包的用途

存索引

 li{
        height: 30px;
        background-color: gold;
        margin-bottom: 10px;
    }
</style>
<script type="text/javascript">
    window.onload = function () {
        var ali = document.getElementsByTagName('li');
    
        for(var i=0; i<ali.length; i++){
            (function (i) {
                ali[i].onclick = function () {
                    alert(i)
                }
            })(i)
        }
   }

私有计数器

var count = (function () {
        var a = 0;
        function bb() {
            a++;
            return a;
          }
        return bb;
    })();
    alert(count());
    alert(count());
    var c = count();
    alert(c);
上一篇 下一篇

猜你喜欢

热点阅读