考虑下面的Javascript代码:关闭JavaScript的立即评估
var a = [];
var f = function() {
for (var i = 0; i < 3; i++) {
a.push(function(){alert(i)});
}
for (var j = 0; j < 3; j++) {
a[j]();
}
};
警报打印出 '3' 的所有三次。我想要一个不同的行为 - 在循环的每次迭代中生成一个打印i的当前值的函数。即3个功能可以打印不同的索引。
任何想法?
只是添加这个是因为Javascript没有块范围的唯一功能范围的概念,这也抛出了我... http://www.mattfreeman.co.uk/2010/03/closures-scope-in- javascript-vs-c/ – 2010-05-21 08:07:30