zoukankan      html  css  js  c++  java
  • 【js】闭包

    定义普通函数 A
    在 A 中定义普通函数 B
    在 A 中返回 B
    执行 A,并把 A 的返回结果赋值给变量 C
    执行 C
            function A() {
                function B() {
                    console.log('Hello');
                }
                return B;
            }
            var C = A();
            C();
     
    eg1:循环中执行异步,拿到的 i 是循环后的值 , 使用闭包解决;
     //简单的tag
    <div class="parents"> <div class='tab'> <ul> <li><button>1</button></li> <li><button>2</button></li> <li><button>3</button></li> </ul> </div> <div id="div1" class="showdiv">111</div> <div id="div2" class="showdiv">222</div> <div id="div3" class="showdiv">333</div> </div> <script> var btn = document.querySelectorAll('button'); var odiv = document.querySelectorAll('.showdiv'); for (var i = 0; i < btn.length; i++) { // (function (e) { //这个是function里e,即function的形参,也可以换成j,换成什么变量名都无所谓 // btn[e].onclick = function () { // hidediv(); // odiv[e].style.display = 'block'; // } // })(i);//这是循环中的 i ,被作为参数传入, i 的当前值储存在当前立即执行匿名函数中 myclick(i); } function myclick(e) { btn[e].onclick = function () { hidediv(); odiv[e].style.display = 'block'; } } function hidediv() { for (var j = 0; j < btn.length; j++) { odiv[j].style.display = 'none'; } } </script>
  • 相关阅读:
    线程
    简单排序
    SSM的整合
    SpringMVC中的拦截器、异常处理器
    SpringMVC的文件上传
    SpringMVC的数据响应和结果视图
    springMVC的常用注解
    SpringMVC入门
    Spring中声明式事务控制
    JdbcTemplate在spring中的使用
  • 原文地址:https://www.cnblogs.com/kevinmajesty/p/10647849.html
Copyright © 2011-2022 走看看