我很想对此进行一些解释(取自 javascriptkit.com):
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;
}
function testList() {
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]();
}
}
所以testList()
很简单。我尝试一步一步地遵循第一个函数,这就是我认为它会返回的内容:
项目 1 1
项目 2 2
项目 3 3
我不明白的是如何result
返回item 3 undefined
3 次 - 为什么未定义,为什么只有item 3
?
- 在我努力学习的过程中,我并不想让它发挥作用,而是要了解我缺少什么部分以及为什么它没有像我期望的那样出现。