可能重複:
Javascript closure inside loops - simple practical example
Javascript: closure of loop?關閉的JavaScript在for循環中
所以我想結果是1,2,3而不是3,3,3 。如何設置上下文/作用域以使作業使用正確範圍的「我」?
function buildJobs(list) {
var jobs = [];
for (var i = 0; i < list.length; i++) {
var item = list[i];
jobs.push(function() {alert(item)});
}
return jobs;
}
function testJobs() {
var jobs = buildJobs([1,2,3]);
for (var j = 0; j < jobs.length; j++) {
jobs[j]();
}
}
不是一個確切的重複,但同樣的想法。 – hvgotcodes 2011-12-28 21:13:52
@ hvgotcodes好吧,有超過9000個確切的重複,所以它不是真的很重要,如果那不是:D – Esailija 2011-12-28 21:19:57
精確地說,它的驚人多少次這個問題被問.... – hvgotcodes 2011-12-28 22:39:44