Задать вопрос
jack_azizov
@jack_azizov

Зачем при вызове функции ставят две двойные скобки?

Вот пример
var a = 1;

function getFunc() {
  var a = 2;

  var func = function() { alert(a); };

  return func;
}

getFunc()(); // 2, из LexicalEnvironment функции getFunc


Зачем ставят getFunc()()? в чём разница между getFunc() ?
  • Вопрос задан
  • 4864 просмотра
Подписаться 1 Оценить Комментировать
Ответ пользователя Eugene Mosyukov К ответам на вопрос (2)
GeneMoss
@GeneMoss
void
Функция getFunc() возвращает другую функцию (та что в переменной func). Вот вторые скобки нужны затем, чтобы вызвать функцию, которую вернула getFunc().

Можно сделать так:
var func = getFunc();
func(); // тут уже сработает alert(), который она вызывает
Ответ написан