• 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>
    人如代码,规矩灵活;代码如诗,字句精伦。
  • 相关阅读:
    团队个人冲刺day08
    4.26 jQuery AJAX load() 方法
    4.23 jquery
    4.22 AJAX技术
    4.21 正则表达式
    4.20
    4.15 重写团队作业1
    4.12 重写团队作业1
    4.9 团队作业1
    4.7 团队作业1
  • 原文地址:https://www.cnblogs.com/xinlinux/p/4118038.html
Copyright © 2020-2023  润新知