По-простому можно считать, что "захваченные" переменные выделяются не на стеке, а в куче. А уж как именно движок понимает, что произошел захват, я вам не подскажу. По программисту обычно как бы очевидно, что захвачено, а что - нет.
Очевидно, что любая функция может использовать внешние переменные. Причём, это верно практически для любого ЯП.
Execution Scope это стек вызовов, и на стеке как раз хранятся локальные переменные контекста, лексическое окружение дает нам возможность их видеть, а вот возможность на них сослаться и не отпускать, даже когда родительская функция померла и есть замыкание
И все же, если мы говорим про js, то в данном примере действительно замыкания нет ;-)
Сисадмин который все зацикливает на себя и обкладывает во круг себя "секретами" и "тайнами" это не плохой сисадмин, это просто идиот, по этому подобные случаи рассматривать вообще глупо.
Я о том, что в книгах описываются технические аспекты администрирования, но кроме железа "веселья" админу добавляет любопытный зоопарк юзверей и как их правильно готовить в умных книжках ничего не пишут
знал бы ты, сколько систем оказалось похоронено, потому что знал только сисадмин. ))
К четвертому require_once скорость опять упала до черепашьей
я понимаю, существуют задачи (выдуманные) когда заказчик хочет чтобы база данных - это железобетонно
Да, но какая связь между этим и определением замыкания? Не говоря уже о фразе: "In JavaScript, closures are created every time a function is created, at function creation time." (https://developer.mozilla.org/en-US/docs/Web/JavaS...).