【JavaScript】想请问一下为什么输出不是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

以上是 【JavaScript】想请问一下为什么输出不是1到16,而是16次16? 的全部内容, 来源链接: www.h5w3.com/37759.html

回到顶部