可能重复:
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