真正的方法来删除对象的属性(删除vs null null与undefined)
问题描述:
我有一个很大的对象key-value
对(如dictionary
)。发生什么事情时,我想从object
中删除key-value
。我知道delete performance issue,并将未使用的密钥设置为undefined
/null
看起来是一种很好的方式,但我仍然担心GC
。我可以将object
设置为undefined
或null
,但关键(property
)仍然站在那里并保留一些memory
。当我delete
键,它消失,所以我猜这意味着GC
将free
密钥的memory
。所以我很难找到密钥的真正解决方案,从大集合object
。也许一些建议或参考?真正的方法来删除对象的属性(删除vs null null与undefined)
例子:
var dic = {};
dic.a = 1234;
dic.b = "hello";
dic.c = "!#$";
delete dic.a; // { b: "hello", c: "!#$" }
dic.b = undefined; // { b: undefined, c: "!#$" }
dic.c = null; // { b: undefined, c: null }
的属性设置为一个'undefined'或'null'值不会删除它只是使属性的属性是特定值。所以现在你正在混合使用空/未定义检查的属性定义检查。 – MinusFour
@MinusFour是的,这就是为什么我担心GC。我想要财产被垃圾收集和释放。 – MFatihMAR
您在删除属性时遇到了哪些性能问题?离开属性时遇到什么内存问题? – Matt