前端,封闭函数和闭包

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

推荐阅读更多精彩内容