赞
踩
for (var i = 0; i < 10; i++) {
setTimeout(() => {
console.log(index);
}, 1000)
}
// 答案:1秒后输出 10 个 10
输出 0 到 9
应该如何修改?for (var i = 0; i < 10; i++) { (function(index) { setTimeout(() => { console.log(index); }, 1000) })(i) } // 或 for (var i = 0; i < 10; i++) { let fn = function(index) { setTimeout(() => { console.log(index); }, 1000) } fn(i) } // for循环时 i 赋值给局部变量index, 则其值将不会随着i的变化而变化,立即执行。
对象更推荐用 reactive 定义,语义化更强
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。