TL; DR; да, он будет очищен
Ответ: Есть вероятность, что он не будет очищен. если вы когда-нибудь сохраните эту переменную sfx для последующего использования (допустим, вы добавите к некоторой форме события, тайм-аут и т. д. c ...), то она будет очищена после выполнения этого слушателя.
Это это очень ситуативная проблема, имейте это в виду! Если, например, у вас есть эмиттер событий и вы присоединяете функцию к событию on
, то эта функция не будет удалена из памяти (например).
В любом случае. Если эта переменная используется только для выполнения sfx.play()
, она будет удалена из памяти.
Небольшое предложение. Почему бы вам не создать переменную класса, скажем: this.blipSound = new Audio()
, и использовать this.blipSound.play()
там, где вам это нужно, вам не нужно каждый раз устанавливать значение null или 0, как вы предлагали, просто сохраните ее? Таким образом, вам не придется беспокоиться об утечках памяти, поскольку будет один экземпляр класса?