如果你想在Javascript中对变量强制垃圾收集,最好将它设置为null或undefined?

Dee*_*thy 8 javascript performance

我正在使用JS框架开发Android游戏.我想确保一旦完成使用它们就会收集一些垃圾.我该怎么强迫呢?我应该使用null还是undefined?

ale*_*lex 8

你不能强迫垃圾收集(不是任何理智的方式).

如果您的变量没有自动超出范围,只需将它们设置为null.

  • 以疯狂的方式,我在这里绝望. (7认同)

TGH*_*TGH 7

最好的建议是在范围内定义它们,使它们符合垃圾收集的条件.这意味着不要使用永远不符合收集条件的全局变量.而是将它们声明为本地人.

  • 您是说全局变量永远不是垃圾收集的候选者吗?例如,如果我设置了`window.bigdata = create5meg()`,然后将全局设置为`window.bigdata = null;`,那么这5兆数据将不会被垃圾收集? (2认同)

Nee*_*eta 5

您可以将其设置为null,如果这是对该对象的最后一个引用,它将可以进行垃圾回收。

http://coding.smashingmagazine.com/2012/11/05/writing-fast-memory-ficient-javascript/

TGH的建议是最好的,我建议。