我想知道如何正确地破坏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月之后的浏览器,因为我知道过去内存管理有点不一致。 最佳答案
我认为delete -Operator是您想要的:
delete acme.models.nomination;