谁能解释为什么下面代码的跟踪结果是“5,5,5,5,5”而不是“1,2,3,4,5”以及如何让匿名函数引用收集元素数组?(在这个例子中,“var item”应该是指 list[0],[1],[2],[3],[4])。
var list:Array=[1,2,3,4,5];
var funcs:Array=[];
for each(var item:int in list){
funcs.push( function(){
trace(item);
});
}
for each(var func:Function in funcs){
func();
}
trace result: 5,5,5,5,5