вопрос отцам JavaScript
var Fs = []так попробуй
for(var i = 0; i < 10; i++)
{
Fs[i] = function{alert(i)}
}
Fs[3]
блин,херня.чет не соображу
var Fs = [];
var i;
for(i = 0; i < 10; i++)
{
Fs.push( function(X){ return function { alert(X); }; }(i) ) ;
}
Fs[3];
var Fs = []; var i; for(i = 0; i < 10; i++) { Fs.push( function(X){ return function { alert(X); }; }(i) ) ; } Fs[3];а немного пояснений можно ?
ЗЫ т.е. суть того что ты написал ясна, но почему мое не пашет - почему так криво функции создаются?
ЗЗЫ подправил заголовок
проблема там с областями видимости переменных. типа она конечно у тебя X выводит, но X у тебя все равно меняется. А вот когда ты параметр в функцию передаешь, то он уже реально становится "локальным".
http://dklab.ru/chicken/nablas/39.html
Читай про замыкания (closures)
Читай про замыкания (closures)
Оставить комментарий
zya369
выводит 9. что нужно псделать, чтобы было 3 ?