Замыкание - это способность функции запоминать область видимости, в которой эта функция была объявлена. Посмотрим пример: var b = 10; function func(a) { var с = 100; return a + b + с; } func(1); Переменная a является параметром функции func, а параметры функции всегда входят в область видимости функции, соответственно, переменная a свободно используется внутри func и недоступна извне. Переменная b объявлена в глобальной области видимости. Функция func тоже объявлена в глобальной области видимости. Если замыкание - это способность функции запоминать область видимости, в которой эта функция была объявлена, то функция func запомнила, что в момент объявления, в области видимости, в которой она была объявлена, была доступна переменная b, соответственно, функция func имеет доступ к этой переменной, а значит может использовать ее внутри себя. Переменная c является частью области видимости функции, т.к. была объявлена внутри функции, а значит, может свободно использоваться вн