为什么在下面的版本 B 中运行 f1 与在版本 A 中不同?
// 版本 A
var f = {};
for( var i=0 ; i<3 ; i++ ) {
f[i] = function() { alert(i); }
}
// 版本 B
var f = {};
for( var i=0 ; i<3 ; i++ ) {
f[i] = function(j) { return function() { alert(j); }; }(i);
}
为什么在下面的版本 B 中运行 f1 与在版本 A 中不同?
// 版本 A
var f = {};
for( var i=0 ; i<3 ; i++ ) {
f[i] = function() { alert(i); }
}
// 版本 B
var f = {};
for( var i=0 ; i<3 ; i++ ) {
f[i] = function(j) { return function() { alert(j); }; }(i);
}