<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
<script type="text/javascript">
var arr = [],
a;
for(i=0;i<5;i++){
arr[i] = function(){
console.log(i);
}
}
arr[0]();
</script>
</head>
<body>
</body>
</html>为什么打印结果是5???想半天想不明白
1 回答
已采纳
王家大少
TA贡献17条经验 获得超14个赞
因为使用var关键字定义的变量时全局的,也就是说当循环结束时,从a[0]到a[4]这个五个数组里面的变量是同一个a,它们的值都是5,也是var关键字设计的一大败笔之处。
添加回答
举报
0/150
提交
取消