簡單案例:我想要加載多個具有通用名稱和後綴的圖像,例如:image0.png,image1.png,image2.png ... imageN.pngfor循環和詞彙環境中的閉包
我使用for循環簡單:
var images = [];
for (var i=1; i<N; i++) {
images[i] = new Image();
images[i].onload = function() {
console.log("Image " + i + " loaded");
};
images[i].src = "image" + i + ".png";
}
什麼我得到的控制檯:
Image N loaded
Image N loaded
Image N loaded
...
Image N loaded
但我想應該是這樣的:
Image 0 loaded
Image 1 loaded
Image 2 loaded
...
Image N loaded
這是爲什麼發生? 我怎樣才能得到我想要的行爲?
可能重複[關閉的Javascript內循環 - 簡單實用的例子(http://stackoverflow.com/questions/750486/javascript-closure -inside-loops-simple-practical-example) – 2010-12-11 19:40:12