javascript – don’t make functions within a loop
有一次提交project时,被提示 don’t make functions with a loop ,查了些资料后才明白。
上面的代码可以正常输入 1 到 10 。
但上面的代码就会输出10个11 。
当看到输出结果时,想想就明白原因了,因为等到 1 秒后再去输出时,i 的值已经变成 10 了。
就因为容易出现这样的问题,所以不能在 loop 里 make functions 。
参考链接:https://www.youtube.com/watch?v=Nqfs14iu_us
=======20180420更新========
MDN中讲闭包时也有提到这个问题:在循环中创建闭包:一个常见错误
链接:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Closures