您的问题是,在您的<代码>开启timeout(<>/code>)功能大火时,你指的是可变的<代码>i,到那时,i
的数值发生了变化(该代码已到<>><>for>。 为保持每一规定时间的适当价值i
, 您必须分别为每一条<代码>>准时(i查询。
以前使用工厂功能的回答是,只有罚款,但我发现,自我执行职能比工厂职能更容易进行分类和跟踪,但两者都能够发挥作用,因为两者都包含在关闭时所希望的变量,这样你就可以在固定停电时提及其固定价值。
在这方面,自我执行职能如何努力解决这一问题:
var end=8;
for (var i = 1; i < end; i ++) {
(function (index) {
setTimeout(function() {
console.log(index);
}, 800);
})(i);
}
为根据<代码>i的价值确定时间延误,请:
var end=8;
for (var i = 1; i < end; i ++) {
(function (index) {
setTimeout(function() {
console.log(index);
}, index * 800);
})(i);
}
自我执行职能的价值通过i
,该职能中包含该价值的论据称为/index
。 因此,请参阅<代码>index,以使用适当的数值。
www.un.org/spanish/ecosoc 采用ES6
有了 Java(于2015年发布)ES6,你可以使用<条码><><>>>。 循环,这将为<<<>><>>>>><>>>>代码>的每个版本创造新的、单独的变量。 这是解决类似问题的“现代”办法:
const end = 8;
for (let i = 1; i < end; i++) { // use "let" in this line
setTimeout(function() {
console.log(i);
}, 800);
}