为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

蓝小胖子 2018-04-18 21:17:57
<!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关键字设计的一大败笔之处。

查看完整回答
1 反对 回复 2018-04-18
  • 1 回答
  • 0 关注
  • 901 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信