我想知道如何正确地破坏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;

07-26 06:58