我想了解JavaScript關閉。我讀了一個示例代碼:使用代碼示例的Javascript關閉說明
function buildList(list) {
var result = [];
for (var i = 0; i < list.length; i++) {
var item = 'item' + list[i];
result.push(function() {alert(item + ' ' + list[i])});
}
return result;
}
var fnlist = buildList([1,2,3]);
// using j only to help prevent confusion - could use i
for (var j = 0; j < fnlist.length; j++) {
fnlist[j]();
}
此代碼將打印出「item3 undefined」警報3次。我確實理解第5行項目變量中的「3」,但我不明白爲什麼從第5行的列表[i]打印出「undefined」?這是不是也使用閉包訪問列表變量?有人能解釋這一點嗎?
哦,對了。嘿,謝謝。 – user926958