我想知道如何正确销毁包含其他数据中的数组的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月之后的浏览器,因为我知道内存管理在过去有点不一致。