Сборка мусора в Javascript - это туманная вещь.Вообще говоря, вы можете предположить (хотя мы знаем, что подразумевается под этим), что как только не будет ссылок на переменную (например, когда она выйдет из области видимости), она будет собираться мусором.Однако ваши замыкания не будут работать так, как вы собираетесь, потому что они ни к чему не привязаны;таким образом, у вас не будет объекта функции для вызова getx()
.Однако, если бы вы присвоили его, x
никогда бы не вышел за рамки, если бы вы не использовали ключевое слово delete
для любых переменных, содержащих ссылку на функцию.
Простое правило: используйте оператор delete
всякий раз, когдавы беспокоитесь о коллекции - это удалит ссылку, и более вероятно, что память будет освобождена.
Редактирование: комментарии @chuckj в стороне, используете ли вы delete
или присваиваете переменную undefined
по-прежнему соответствует точке, в которой вы хотите установить счетчик ссылок на 0, если есть надежда на освобождение памяти.