Ich habe ein Stück Code, den ich versuche, Alarm zu haben 1,2,3
. Ich habe Probleme mit Verschlüssen richtig, so dass ich das nicht herausfinden kann.Problem, die Schließungen zu arbeiten
Der ursprüngliche Code:
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();
Ich versuche, so etwas zu buildList()
zu tun, um es richtig zu arbeiten:
function buildList(list) {
var result = [];
for (var i = 0; i < list.length; i++) {
var item = 'item' + list[i];
result[i] = function(x) {
result.push(function() {alert(item + ' ' + list[x])});
}(i);
}
return result;
}
Ich weiß, ich mache Fehler auf mit der Arbeit Schließungen, ich bin nur nicht sicher, was das Problem ist.