var k = 0; while(k < 16){ k++; setTimeout(function(){ console.log(k); },1); }
想请问一下为什么输出不是1到16,而是16次16?感谢
setTimeout(function(){ console.log(k);
这里函数闭包,引用的是变量k而不是k的值。因为k最后是16,所以16次执行,都是16