猿问

JavaScript为什么调用索引为0的数组中的函数得到的结果是5

<!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???想半天想不明白

蓝小胖子
浏览 909回答 1
1回答

王家大少

因为使用var关键字定义的变量时全局的,也就是说当循环结束时,从a[0]到a[4]这个五个数组里面的变量是同一个a,它们的值都是5,也是var关键字设计的一大败笔之处。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答