还是不理解”整个初始化后i就变成了4“这个意思,求大神指点

来源:7-1 [JavaScript]理解闭包

hznn

2015-07-26 12:04

ocument.body.innerHTML = "

a

a2

a3

"; for(var i=1;i<4;i++){ document.getElementById("div"+i).addEventListener('click',function(){ alert(i); }); }

还是不理解”整个初始化后i就变成了4“这个意思,求大神指点

写回答 关注

2回答

  • 610666618
    2015-12-12 17:43:24

    for(var i=1;i<4;i++) 这是一个循环,三次循环i=1,i=2,i=3直到i++到 i=4了,不满足条件了,退出。但是i=4会当做全局变量保存,所有用户点击div会访问到i=4的情况。

    underf...

    正解!

    2016-06-25 23:31:24

    共 1 条回复 >

  • 方克申
    2015-07-28 16:30:25

    Javascript没有块级作用域,for语句中声明的i是个全局变量。具体请看3-1节课的2:10位置。

    姚姚博一

    谢谢,很感谢你的回答,现在明白了!!!

    2016-12-18 00:44:27

    共 1 条回复 >

JavaScript深入浅出

由浅入深学习JS语言特性,且解析JS常见误区,从入门到掌握

281112 学习 · 1020 问题

查看课程

相似问题