读书人

for循环中的闭包函数使用有关问题

发布时间: 2012-09-28 00:03:35 作者: rapoo

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在闭包内使用    } 

读书人网 >JavaScript

热点推荐