Каковы преимущества закрытия и когда они обычно используются? - PullRequest
17 голосов
/ 05 ноября 2010

Я веб-разработчик, но многие люди ищут немного более продвинутых навыков, и понимание замыканий, похоже, находится на переднем крае этого.

Я получаю весь "контекст выполнения, создающий ссылку напеременная, которая никогда не уничтожается ", но на самом деле, это какая-то реализация частной или статической переменной в JavaScript?

Ответы [ 3 ]

14 голосов
/ 05 ноября 2010

Они могут быть хороши для многих вещей, например, для наглядности (например, частные члены в традиционном ОО).count() может быть засеяно с номером.Когда я назначаю переменную для возврата, я могу вызвать ее с необязательным номером для добавления к внутреннему num (первоначально аргумент, но все еще часть области возвращаемой функции).

Это довольно хороший обзор .

См. Также о переполнении стека

4 голосов
/ 05 ноября 2010

Замыкание - это блок кода со связанными переменными - оно «ловит» свои переменные из их внешнего контекста, но оно не зависит от этого же контекста.

Практическое использование в javascript - это определение событий или обратных вызовов- вы объявляете закрытие, которое будет выполнено, например, нажатием кнопки, но это закрытие может ссылаться на переменные, объявленные в области вызова.

jQuery часто использует замыкания - кстати, этоявляется хорошей ссылкой для понимания замыканий для jQuery: Графическое объяснение замыканий Javascript в контексте jQuery .

Надеюсь, это поможет.

0 голосов
/ 05 ноября 2010

Существует много книг по JS, но вам действительно нужно взять копию JavaScript Дэвида Фланагана: Полное руководство , если вы действительно хотите изучить это (по-прежнему лучший справочник по JS).ПО МОЕМУ МНЕНИЮ).Прочитайте главу о замыканиях, и вы получите гораздо более глубокие знания, чем кто-либо может дать вам в ответе здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...