以下程序会alert什么?
答案是 2 , 2
其实理应让其alert 0,1才对
这是因为第一个for循环里面创建函数fn的时候里面的i始终是在同一个作用域
这样当循环2次后,又执行了一次i++,这时i等于2了. 因为是同一作用域,因此函数里面的i都是2
要解决此问题,只需要创建一个闭包来实现就可以了,修改第一个for循环:
这样就打印 0 1 了.因为闭包里面的参数j跟i不是在同一作用域
以下程序会alert什么?
答案是 2 , 2
其实理应让其alert 0,1才对
这是因为第一个for循环里面创建函数fn的时候里面的i始终是在同一个作用域
这样当循环2次后,又执行了一次i++,这时i等于2了. 因为是同一作用域,因此函数里面的i都是2
要解决此问题,只需要创建一个闭包来实现就可以了,修改第一个for循环:
这样就打印 0 1 了.因为闭包里面的参数j跟i不是在同一作用域