比方說我有以下代碼:
for(var i=0; i < itemlist.length; i++){
var item = itemlist[i];
var id = item.id;
$http.get(id + '.json').success(function(data){
//do something with data.
console.log(item.name);
}
}
在控制檯中顯示的名稱將是一個重複的值(我認爲陣列ITEMLIST的第一個值),即回調函數不知道可變項目。
隨着我的理解水平這是奇怪的。有沒有辦法將其他變量傳遞給此回調函數 - 和/或 - 有人可以啓發我爲什麼此變量的作用域以這種方式運行?
應該對就好了關閉。 –
[在循環中創建閉包:常見錯誤](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Closures#Creating_closures_in_loops.3A_A_common_mistake)&http://stackoverflow.com/questions/750486/javascript-closure-inside-loops-simple-practical-example –