我制作了一个包含许多小关卡的 HTML5 游戏。当玩家到达门口时,会加载另一个关卡。当一个关卡正在加载时,它基本上只是将所有实例数组设置为 []
,然后通过创建事物的新实例将内容插入其中,例如:
enemies = [] //this has previously been full of pointers from the old level
for (i = 0; i < n_enemies; i ++)
enemies.push(new Enemy());
但是,我注意到仅仅设置一个充满指向 []
的指针的数组并不会真正删除实例!那么,javascript 会自动执行此操作吗?还是我必须自己删除
每个实例?
最佳答案
如果数组中的对象不再被任何地方引用,那么它们将被垃圾回收。没有说明何时会发生这种情况,但应该是在将它们从阵列中移除后不久。
这不应该出现内存泄漏。
关于javascript - 在 Javascript 中,我应该在加载新实例后删除上一级别的实例吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9567143/