日期:2014-05-16  浏览次数:20382 次

for循环中的闭包函数使用问题
<head>
<script language="javascript">
window.onload=function(){ 
  var obj=document.getElementById("mai");
  var items=["click","keypress"];
  for(var i=0;i<items.length;i++){
  (function(){
  var item=items[i];
obj["on"+item]=function(){
alert("thanks for your"+item);
 
};
  })();
 } };
</script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>
<p id="mai">风雨走过</p>
</body>
</html>


这儿的闭包函数中为什么items[i]中i总是为2???还有闭包函数(function(){})()
最右边的的括号一般填写的是什么数据???

------解决方案--------------------
JScript code
    for(var i=0;i<3;i++){
        (function(x){
            return function(){
                alert(x);
            }
        })(i);
        //就是把外面的i变量传给x在闭包内使用
    }