var k = 0;
while(k < 16){
k++;
setTimeout(function(){
console.log(k);
},1);
}
想请问一下为什么输出不是1到16,而是16次16?
感谢
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