为什么输出一些奇怪的东西?
(function(i) { onImageLoad(i); })
周围的括号是做什么的?似乎他们“实现”了这个功能,但我想知道真正的术语。
function startGame() {
for (var i = 0; i < assets.length; i++) {
frames.push(new Image());
// correct
//frames[i].onload = (function(i) { onImageLoad(i); })(i);
// wrong
frames[i].onload = function(i) { onImageLoad(i); };
frames[i].src = assets[i];
}
setInterval(animate, frameRate);
}
onImageLoad = function(n) {
console.log("image number", n, "loaded");
}
image number Event {clipboardData: undefined, cancelBubble: false, returnValue: true, srcElement: img, defaultPrevented: false…} loaded