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>
  • 相关阅读:
    双向(端)链表、栈、队列
    WPF 3D基础(1)
    静态查找
    栈和队列 迷宫求解
    异步编程Demo
    WPF 3D基础(2)
    串操作
    链栈和链队
    Linux恢复数据
    word文件修复窍门
  • 原文地址:https://www.cnblogs.com/kevinmajesty/p/10647849.html
Copyright © 2011-2022 走看看