考虑以下代码:
function func() {
var totalWidths = 0;
for( var i = 0, count = arr.length; i < count; i++ ) {
var image = arr[i];
insertElemInDOM(image);
preloadImage(image,function(){
var w = image.width();
totalWidths += w;
});
}
// do something with the variable "totalWidths"
doSomething(totalWidths)
}
我这里有两个问题。图像将始终相同(第一个问题),可以使用匿名函数解决:
for(...) {
(function(image) {
preload(image,function() {
// now image is the correct one
});
})(image);
}
但是如何管理 totalWidths 变量以便稍后在 doSomething(totalWidths) 上使用它?前面的代码将 totalWidths 的值为 0。谢谢!