Вот пример закрытия из википедии articleПонимание основной пример закрытия из Википедии
function startAt(x)
function incrementBy(y)
return x + y
return incrementBy
variable closure1 = startAt(1)
variable closure2 = startAt(5)
В соответствии со статьей
ссылающегося на closure1 (3) вернет 4, при вызове closure2 (3) вернется 8.
Что происходит за кулисами?
Почему бы этот код не вызвать какую-либо ошибку на реальном языке программирования? incrementBy требует, чтобы вторая переменная делала сумму, не так ли?
Когда мы вызываем clos() с аргументом, правильно ли мне присваивается значение y в пределах incrementBy scope?
Я прав, что замыкание2 два привязано к записи, отличной от записи, к которой привязано замыкание1?
Помогает ли этот пример: http://stackoverflow.com/questions/18234491/two-sets-of-parentheses-after-function-call/18234552#18234552? Пример закрытия JavaScript в значительной степени идентичен закрытию вашего вопроса. Помимо того факта, что внутренняя функция анонимна вместо имени 'incrementBy'. – Paulpro
Вы также можете прочитать следующее: http://stackoverflow.com/questions/111102/how-do-javascript-closures-work. Я бы сказал, что это дубликат, за исключением того, что ваш вопрос кажется языковым агностиком. – Paulpro