Закрытие - это функция с контекстом. Если вы динамически создаете новую функцию, вы создаете замыкание.
function makeAdder(int num) {
return function(int num2) { return num + num2; }
}
adder = makeAdder(5);
adder(7) // returns (5+7) = 12
adder(2) // returns (5+2) = 7
Здесь замыкание - это внутренняя функция, возвращаемая makeAdder, вместе с переданной '5'.
Движок javascript может предпочесть оптимизировать функцию, показанную выше, чтобы заставить вещи работать быстрее, никогда не генерируя и не запуская этот код, поэтому на него нельзя отлаживать или ссылаться. Предполагается, что оптимизаторы должны быть очень осторожны, чтобы гарантировать отсутствие влияния, поэтому я думаю, что этот ошибся.