美文网首页
封闭函数和闭包

封闭函数和闭包

作者: 卑微小利 | 来源:发表于2019-01-10 09:36 被阅读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);
    

    相关文章

      网友评论

          本文标题:封闭函数和闭包

          本文链接:https://www.haomeiwen.com/subject/bkrorqtx.html