変数の値が予想と違う

id:Sore_0さんが、何か困ってたので、よくわかっていないなりにコードを書いてみた。

for(var i = 0;i < array.length; i++) {
// 中略
  foo = hoge(i);
  item.addEventListener("click", foo, false);
  document.body.appendChild(item);
}

function hoge(num){
  return function (){ return test(num); };
}

とりあえず動くけど、もっと勉強しないとなぁ。お役に立てばいいのですけど。

参考にしたところ:指向性メモ::2005-07-24::クロージャとOOPとJavaScriptの謎仕様