删除node.js数组中对象的正确方法?
我已经写了一个预先删除对象的函数。
function add(variable, expireSecond){ this.list[variable] = {"expireSecond": expireSecond, "addTime": (new Date().getTime()) / 1000}; } function deleteExpiredObject(){ var currentTime = (new Date().getTime()) / 1000; for (var key in this.list) { var item = this.list[key]; if (item.expireSecond + item.addTime < currentTime){ delete this.list[key]; } } }
当我使用它时,我试图做到以下几点:
add(xxx[1], 300);
但是当我调用deleteExpiredObject()
,对象过期后内存似乎不是空闲的。 是否由于xxx[1]
中的对象的非零引用? 怎么解决? 有什么图书馆可以使用吗?
谢谢!
这更像是一个Javascript问题,而不是直接关联到node.js. 在Javascript中删除用于从对象中删除属性。 如果该属性引用了一个对象,则该对象不会被删除,但是如果没有更多的引用,则应该在下一个垃圾回收循环中清除它。
以下是一些与Javascript相关的问题,以及您可能会觉得有用的delete关键字:
在JavaScript中,在同一个variables上没有`delete`
什么时候应该使用删除vs设置元素在JavaScript中为null? (closures作为笨蛋,但有很好的答案)
在JavaScript中删除对象