大话西游666
打印一句console.log("cleartime:", time),你就明白了为什么最后一次 4 没有打印出来.for (var i = 1; i <= 4; i++) {
var time = setTimeout( function(i) {
console.log("cleartime:", time);
clearTimeout(time);
console.log(i);
}, 1000, i );}
cleartime: 41cleartime: 42cleartime: 43也就是说,虽然通过定时器传参避免了i共享, 但是 var time 却共享,每次都是清除的ID 4, 所以最后4没有打印出来.