如何在JavaScript中删除新的数组?

时间:2015-05-31 11:42:32

标签: javascript arrays new-operator unityscript delete-operator

我使用Unity,所以这在技术上是UnityScript,但我认为内置数组的工作方式相同。我有一个我创造的数组:

var room:roomInfo[,,];
room=new roomInfo[5,5,5];

删除语法是什么?简单地执行delete room;delete room[,,];似乎无效。删除后我需要这样做:

room=new roomInfo[10,10,10];

似乎是一个荒谬简单的问题,但我对这些事情感到困惑而忘记了,我无法在谷歌上找到任何东西(因为我无法找到要搜索的内容)。

2 个答案:

答案 0 :(得分:2)

您不需要这样做,因为UnityScript已经为您完成了这项工作(Automatic Memory Management)。但如果您仍然喜欢自己的方式,请使用:

room = null;

在此之后,您可以将其初始化为:

room = new roomInfo[10,10,10];

所以完整的代码是:

room = null;
room = new roomInfo[10,10,10];

答案 1 :(得分:1)

Unity Script是(作为JavaScript)使用垃圾收集来自动释放未使用的内存。

如果没有指向对象的变量,则释放元素。垃圾收集器知道可以保存指向数组的指针的任何变量,并确定是否有任何指向该数组的变量。

如果没有变量指向您的数组,它将被标记为已释放。

  

创建对象,字符串或数组时,存储它所需的内存是从称为堆的中央池分配的。当项目不再使用时,它曾经占用的内存可以被回收并用于其他内容。 [...]如今,Unity的Mono引擎等运行时系统会自动为您管理内存。

http://docs.unity3d.com/Manual/UnderstandingAutomaticMemoryManagement.html