封闭函数和闭包

2019-01-10  本文已影响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()

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

闭包的用途

1.存索引

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)
        }
    }

2.私有计数器

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

猜你喜欢

热点阅读