-1

var funcs = [];

for(var i = 0; i < 10; i++) { funcs.push(function() { return i; }); }

for(var j = 0; j < funcs.length; j++) console.log(funcsj);

Почему анонимная функция внутри push всегда возвращает 10?

1 Answers1

2

Потому что функция берет значение для i из замыкания в момент вызова. А вызывается она тогда, когда i уже равно 10.

smellyshovel
  • 5,224