Я очень озадачен этим кодом:
var closures = [];
function create() {
  for (var i = 0; i < 5; i++) {
    closures[i] = function() {
      alert("i = " + i);
    };
  }
}
function run() {
  for (var i = 0; i < 5; i++) {
    closures[i]();
  }
}
create();
run();
По моему мнению, он должен печатать 0,1,2,3,4 (разве это не концепция закрытия?).
Вместо этого он печатает 5,5,5,5,5.
Я попробовал Rhino и Firefox.
Может ли кто-нибудь объяснить это поведение мне? спасибо заранее.
