dollar
@dollar

Как осуществить размыкание анонимной функции?

По идее, когда происходит замыкание, переменная остается в памяти даже после выхода из функции. Или не всегда? Как явно удалить эту переменную поскорее, не дожидаясь сборщика мусора?
function foo() {
  let x = 123;
  let bar = function() {
    x += 7;
  }
  bar();
}
setInterval(foo, 10);
  • Вопрос задан
  • 131 просмотр
Решения вопроса 1
Robur
@Robur
Знаю больше чем это необходимо
В общем случае вы не можете управлять тем какие переменные и когда будут удалены из памяти.
То что вы точно можете контролировать - это *не* дать сборщику мусора что-то удалить.
Движок делает много всякого под капотом, и конкретно в вашем примере там может вообще не быть этих переменных в памяти после всяких оптимизаций.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
OTCloud
@OTCloud
Не кради код ближнего своего.
Вот можно тут прочитать про delete <выражение>, однако не совсем кроссбраузерное решение.
1. eng
2. mdn
Ответ написан
xmoonlight
@xmoonlight Куратор тега JavaScript
https://sitecoder.blogspot.com
foo=delete foo.__proto__?undefined:foo;
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
30 мар. 2020, в 20:26
25000 руб./за проект
30 мар. 2020, в 20:22
25000 руб./за проект
30 мар. 2020, в 19:06
500 руб./за проект