数码资讯
使用自执行匿名函数解决在for循环中使用闭包的问题
此代码输出为10 10,而不是预期的0到9,因为闭包是对i的引用,然后当函数执行时,i已变成10。 函数f1(){ 对于(var i = 0;i < 10;i + +){ setTimeout(){()函数( 警报(一); },1000); } } (F1); 为了解决上述问题,可以使用自执行匿名函
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
此代码输出为10 10,而不是预期的0到9,因为闭包是对i的引用,然后当函数执行时,i已变成10。
函数f1(){
对于(var i = 0;i < 10;i + +){
setTimeout(){()函数(
警报(一);
},1000);
}
}
(F1);
为了解决上述问题,可以使用自执行匿名函数。
函数F2(){
对于(var i = 0;i < 10;i + +){
(函数(e){)
setTimeout(){()函数(
警报(e);
},1000);
})(一);
}
}
(F2);
这里的匿名函数将i作为参数,而E中有i的副本,引用是对e的引用,从而避免了上述问题。
函数f1(){
对于(var i = 0;i < 10;i + +){
setTimeout(){()函数(
警报(一);
},1000);
}
}
(F1);
为了解决上述问题,可以使用自执行匿名函数。
函数F2(){
对于(var i = 0;i < 10;i + +){
(函数(e){)
setTimeout(){()函数(
警报(e);
},1000);
})(一);
}
}
(F2);
这里的匿名函数将i作为参数,而E中有i的副本,引用是对e的引用,从而避免了上述问题。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。