您能否逐步解释为什么结果不同?
片段 A(警报 10)
for(var i=0; i<10; i++) if(i==3) setTimeout(function() {alert(i);}, 100);
片段 B(警报 3)
for(var i=0; i<10; i++) if(i==3) setTimeout((function(p) {
return function() {alert(p);}
} )(i), 100);
您能否逐步解释为什么结果不同?
片段 A(警报 10)
for(var i=0; i<10; i++) if(i==3) setTimeout(function() {alert(i);}, 100);
片段 B(警报 3)
for(var i=0; i<10; i++) if(i==3) setTimeout((function(p) {
return function() {alert(p);}
} )(i), 100);