昨晚,我谷歌搜索了很多,找不到解決方案,我的問題: 我有一個for
循環與一個函數,它只讓我從數組中的最新值。如何在JavaScript中實現這個函數的閉包?
所以,這裏是例子:
obj1.route = new Routeng();
obj2.route = new Routeng();
for(var x in arrObjs) { //arrObjs = array of objects
var g = arrObjs[x];
// I can access properties of all "g" objects
Routelousse.gen(function(res) {
var pathern = res.pathern;
g.routel.staviPather(pathern);
MYOBJ.vehicles.push(g);
alert(g.name); // during the loop I always get the LAST "g" object from "arrObjs"
}, g.point);
}
不清楚(對我)你要求什麼? – annakata 2010-11-17 10:09:00
@annakata - 因爲JavaScript在這裏沒有代碼塊範圍,所以''''循環傳遞每次都使用相同的'g',所以在異步函數完成時使用不正確的代碼。 – 2010-11-17 10:11:26
@annakata - thanx,但尼克解決了我的問題! – 2010-11-17 10:14:30