zoukankan      html  css  js  c++  java
  • Js闭包

    <!DOCTYPE html>
    <html>
    <head>
            <meta charset=UTF-8 />
            <title></title>
    <script>
    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);
            }
            };
    </script>
            
    </head>
    <body>
        <ul>
            <li>123</li>
            <li>456</li>
            <li>789</li>
        </ul>
    </body>
    </html>

     

    <!DOCTYPE HTML>
    <html>
    <head>
    <meta charset="utf-8" />
    <title>闭包演示</title>
    <style type="text/css">
        p {background:gold;}
    </style>
    
    </head>
    <body>
    <p>产品 0</p>
    <p>产品 1</p>
    <p>产品 2</p>
    <p>产品 3</p>
    <p>产品 4</p>
    
    <script type="text/javascript">
    
        window.onload = function(){
        
           var pAry = document.getElementsByTagName('p');
        /**for (var i=0;i<aLi.length;i++){
                (function(arg){
                        aLi[i].onclick = function(){
                            alert(arg);
                        };
                })(i);
            }*/
            
            
                
        /**    for( var i=0; i<pAry.length; i++ ) {
            
                 pAry[i].onclick = Function('alert('+i+')');
                 
            }*/
        /**    
            
            for( var i=0; i<pAry.length; i++ ) {
          pAry[i].onclick = new Function("alert(" + i + ");");//new一次就产生一个函数实例
        }
                
            */
            
            
            /**
             for( var i=0; i<pAry.length; i++ ) {
                (function () {
                  var temp = i;//调用时局部变量
                  pAry[i].onclick = function() {
                    alert(temp);
                  }
                })();
              }
            */
            
            /**
            for( var i=0; i<pAry.length; i++ ) {
               (function(arg){
                   pAry[i].onclick = function() {
                      alert(arg);
                   };
               })(i);//调用时参数
              }
            
            */
            
            
            /**
             for( var i=0; i<pAry.length; i++ ) {
               (pAry[i].onclick = function() {
                    alert(arguments.callee.i);
                }).i = i;
              }
                    
            */
            
            
        };
        
    </script>
    </body>
    </html>
    人如代码,规矩灵活;代码如诗,字句精伦。
  • 相关阅读:
    Windows常用命令
    路由器命令基础使用
    《计算机网络》-CCNA命令大全
    Cisco 2960交换机配置
    vscode使用技巧
    Luogu 3321 [SDOI2015]序列统计
    Luogu 3702 [SDOI2017]序列计数
    CF 990 Educational Codeforces Round 45
    Luogu 4705 玩游戏
    CF 438E The Child and Binary Tree
  • 原文地址:https://www.cnblogs.com/xinlinux/p/4118038.html
Copyright © 2011-2022 走看看