Vitsliputsli, ну, по классике (в одном потоке) в стек кладутся значения параметров функции перед её вызовом, и там же выделяются временные переменные самой функции. Чем больше вложенных вызовов, тем больше растёт стек. Но каждое завершение (текущей) функции уменьшает стек в обратном порядке.
В случае с замыканием проблема в том, что временные переменные должны продолжить жить даже после завершения функции. Это противоречит определению стека. И выходом из положения может быть выделение памяти под переменные в куче, в которой уже не нужно следовать FIFO порядку.
Матвей Румынин, если вы имеете в виду то, как замыкания реализованы в памяти, то в стандарте ecma нет указаний на это. В каждой реализации js могут быть свои оптимизаторы. Также там не сказано про сборку мусора. Так что, к примеру, нет гарантии очистки циклических ссылок, даже если реализация строго следует стандарту.
В общем, если ваш вопрос не теоретический, а практический, то лучше интересоваться не стандартом, а тем, как работают замыкания в движке V8.
По-простому можно считать, что "захваченные" переменные выделяются не на стеке, а в куче. А уж как именно движок понимает, что произошел захват, я вам не подскажу. По программисту обычно как бы очевидно, что захвачено, а что - нет.
webratas, во-первых, хороший вопрос начинается с вопросительного слова: как, почему, зачем, сколько и т.д. У вас же просто констатация факта и приклеенный сбоку знак вопроса. Формальный ответ на такой вопрос будет: "Да, не отключается". И это будет верный ответ на текущую формулировку вопроса.
Во-вторых, не помешало бы добавить больше информации, скринов, уточнить версию винды, рассказать про свои безуспешные попытки найти решение, чтобы отвечающие не чувствовали себя воспитателями, а понимали, в чем конкретно затык. Простыню писать, конечно, тоже не стоит, но пока что вопрос выглядит так, словно вам тупо лень искать решение самостоятельно, поэтому и ответы такие.
Carburn, верно, с этим никто и не спорит. Однако ТС спрашивает именно про замыкания, а не про область видимости вообще. Поэтому не ясно, к чему был ваш коммент.
L1nw0od, это способ блокировки такой. Там нет внешнего VPN. Точнее в самой проге есть отдельный настоящий VPN, но это другая история, не связанная с рекламой, у меня выключено.
Resolut, тогда зачем ты читеришь? Ты же сам себя лишаешь пользы от самостоятельного решения задачи. Даже если ты три дня и три ночи будешь биться над задачей, это будет не зря. А когда берёшь готовое, обучение навыку практически не происходит.
Эх, к сожалению, статья 2013 года. Прошло уже почти 10 лет с тех пор. Язык и раньше бодро менялся, но с приходом Интернета он стал меняться крайне быстро.
Например, раньше на равных существовали "броузер" и "браузер", даже в книгах, но сейчас уже нет сомнений, что правильно - "браузер". Слишком уж популярное слово, быстро устаканилось.
А с "кэш" и "кеш" пока до конца не ясно. Не может рассудить и Гугл (11 млн. за "кэш" и 8 млн. за "кеш"). Нужен хороший лингвист, который рассудит и объяснит. В целом, я тоже склоняюсь к "кэш", но всё же считаю, что "кеш" пока ещё не является ошибкой в наше время. Википедия тоже допускает оба варианта.
Насчёт словаря, в орфографическом - другое написание.
MisterVerstalschyk, если на ноутбуке ничто не запускает файлы с флешки автоматически, то только пользователь может вручную запустить файл с вирусом. Иногда это происходит неявно, когда вирус маскируется под документ в надежде на действие (клик) со стороны пользователя.
Однако по логике пользователь контролирует ОС и её настройки. Можно настроить так, чтобы ничего само не запускалось. Также можно настроить, чтобы показывались все скрытые и системные файлы и папки на флешке. Вишенкой на торте может быть антивирус или какая-то утилита, которой вы доверяете, но это уже не обязательно при наличии головы у пользователя и контроля с его стороны.
В случае с замыканием проблема в том, что временные переменные должны продолжить жить даже после завершения функции. Это противоречит определению стека. И выходом из положения может быть выделение памяти под переменные в куче, в которой уже не нужно следовать FIFO порядку.