闭包的相关知识及其代码分享

1.简单原理

闭包是间接性的扩大了变量的使用范围,内部函数可以访问外部函数的变量;

简单原理代码实例:
function fn() {
            var a = 1;
            return function fun() {
                console.log(a)
            }
        }
        var f = fn();
        f();
经典案例应用
<body>
    <!-- 需求:点击第几个li,打印出对应的索引 -->
    <ul>
        <li>第1个li</li>
        <li>第2个li</li>
        <li>第3个li</li>
        <li>第4个li</li>
    </ul>
    <script>
        var lis = document.querySelector('ul').querySelectorAll('li')
        for (var i = 0; i < lis.length; i++) {
            (function(i) {
                lis[i].onclick = function() {
                    console.log(i)
                }
            })(i)
        }
    </script>
</body>
 
原文地址:https://www.cnblogs.com/crazy-rock/p/13292436.html