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>
  • 相关阅读:
    在k8s上部署第一个php应用
    在k8s中的基本概念
    kubernetes 环境搭建
    docker搭建私有仓库
    mysql导入数据乱码的解决
    代码单词
    让代码更容易读
    docker中的link
    docker基本
    解决无法将“babel”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。
  • 原文地址:https://www.cnblogs.com/kevinmajesty/p/10647849.html
Copyright © 2011-2022 走看看