JackShcherbakov
@JackShcherbakov

Что означает функция в скобках?

Имеется код, почему та функция в скобках? И что там за (i) после нее?
function makeArmy() {

  var shooters = [];

  for (var i = 0; i < 10; i++)(function(i) {

    var shooter = function() {
      alert( i );
    };

    shooters.push(shooter);

  })(i);

  return shooters;
}

var army = makeArmy();

army[0](); // 0
army[1](); // 1
  • Вопрос задан
  • 350 просмотров
Решения вопроса 1
SteveLeo
@SteveLeo
Это немедленно вызываемая функция.
Код будет идентичен следующему:
function makeArmy() {

  var shooters = [];
  
  function foo(i) {

    var shooter = function() {
      alert(i);
    };

    shooters.push(shooter);

  }

  for (var i = 0; i < 10; i++){
  	foo(i);
  }
  return shooters;
}

var army = makeArmy();

army[0](); // 0
army[1](); // 1


Вот статья для ознакомления
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
mrspd
@mrspd
Это замыкание в виде немедленно вызываемой функции.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы