我想知道如何正确销毁 Javascript 中包含其他数据中的数组的对象。
例如(这是对象的初始状态):
acme.models.nomination = {
recipients : [], // array will be added to later.
awardType: {}, // this object will be filled out later.
privacy: 'private',
...
};
在使用应用程序时,将添加 nomination.recipients 对象以及其他数据元素。完成以下操作是否足以清除整个对象:
acme.models.nomination = {};
还是这更好(或矫枉过正):
acme.models.nomination.privacy = undefined;
acme.models.nomination.awardType = {};
acme.models.nomination.recipients = {};
acme.models.nomination = {};
我认为前一个语句(即acme.models.nomination = {}
)就足够了,因为这有效地使整个内容无法访问,因此有资格进行垃圾收集。不过,我想听听其他人对此的看法。顺便说一句,答案可以在现代浏览器上下文中给出,比如 2012 年 1 月后的浏览器,因为我知道过去的内存管理有点不一致。