Как сделать анонимные функции с локальными параметрами

Как мне сделать это javascript-предупреждение 0, 1 и 2 вместо 3 3?

var vals = [1, 2, 3];
for(var i = 0; i < vals.length; i++)
{
    window.setTimeout(function() {alert(i);}, 1000);
}

Я знаю причину, по которой это происходит, но не могу понять, как передать i анонимной функции.

6
задан Tyilo 23 August 2011 в 19:11
поделиться