Замыкание - это функция, содержащая в себе ссылки на переменные из внешней области видимости. Т.е. она "замыкает" внешние переменные в себе.
Собственно, это один из двух видов
анонимных функций: есть
лямбда-функции, есть
замыкания (clojures). В этом их отличие.
замыкание js - это функция внутри другой функции ("обертки")
Нет, замыкание не обязательно является вложенной функцией.