да пока такая абстракция в голове образовалась, что есть такая функция, в которую можно передать другую внешнюю функцию и манипулировать так действиями этих функций
у любой функции есть область видимости, так называемый scope, грубо говоря замыкания - это доступ к внешнему scope, я в этом плане обычно представляю объект или дерево/граф (структуру данных) и вот у листьев этого дерева есть доступ к scope их родителей и прародителей и т.д.
function root() { var a = 1; function child1() { var b = 2; function child3() { var d = 4; console.log(a, b, c, d); } } function child2() { var c = 3; } }
еще про замыкания нужно понимать, что если какая-то переменная была замкнута в функции, то она еще будет висеть в памяти, пока эта функция не отработает, даже если та функция, в которой она объявлена, уже свое дело сделала
еще про замыкания нужно понимать, что если какая-то переменная была замкнута в функции, то она еще будет висеть в памяти, пока эта функция не отработает, даже если та функция, в которой она объявлена, уже свое дело сделала