JS闭包解决方案

1.闭包:延长变量的作用域和保存随时改变的值

代码:

<ul>  

      <li><a href="#">点击第0个链接</a></li>  

      <li><a href="#">点击第1个链接</a></li>  

      <li><a href="#">点击第2个链接</a></li>  

      <li><a href="#">点击第3个链接</a></li>  

      <li><a href="#">点击第4个链接</a></li>  

</ul>

 

 

 

var links = document.getElementsByTagName('a');

 

方法1:

 function closureTest(num){

           return function(){

                 alert("你点击了第" + num + "个链接");

               }

            }

 

 for(var i=0;i<links.length;i++){

          links[i].onclick = closureTest(i);

      }

 

方法2:

for(var i=0;i<links.length;i++){

      links[i].onclick = (function(i){

              return function(){

                     alert("你点击了第" + i + "个链接");

             };

      })(i)

 

方法3:

//     (function(i){

//             links[i].onclick = function(){

//                     alert("你点击了第" + i + "个链接");

//                 };

//          })(i)

 

}

 

posted @ 2014-11-15 23:51  天外小龙虾  阅读(244)  评论(0编辑  收藏  举报