注册 登录
编程论坛 JavaScript论坛

关于闭包的问题

sclorg 发布于 2011-06-23 16:42, 403 次点击
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> New Document </TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="">
  <META NAME="Keywords" CONTENT="">
  <META NAME="Description" CONTENT="">
  <script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
  <script>
  $(function(){
    var t =function(i){
    $('#'+i).toggle(
            function(){alert(i)},function(){alert(i)}
        )
    }
    for(var i =0;i<2;i++){
        t.call(this,i)
    }
  })
  </script>
 </HEAD>
 <BODY>
  <div id='0'>dd1</div><div id='1'>dd2</div>
 </BODY>
</HTML>

把上面js换成
$(function(){
    for(var i =0;i<2;i++){
         $('#'+i).toggle(
            function(){alert(i)},function(){alert(i)}
        )
    }
  })

你会发现上下alert是不一样的,我觉得下面的代码会alert出来2是应为闭包的作用,但是上面这样写难道就没有闭包了吗?有懂得高人解释下吗
0 回复
1