2011-12-05 35 views
2

With Array我知道您可以使用delete关键字从Array中移除项目。但是,delete不会删除变量。正确的方式来“删除”一个属性?

var b = "some stuff"; 
delete b; 
console.log(b); // "some stuff" 

什么是“释放”b使用的内存的正确方法?做b = null;只是做诡计吗?

+1

如果您不知道:如果'b'在函数范围内声明,您可能根本就不用担心它。一旦执行离开函数范围,如果你没有其他引用,它就像你希望的那样自由。 –

+1

@JamesClark,但有人可能会遇到'b'正在加载大量数据的情况,以至于在加载另一块数据之前它必须被释放 – puk

回答

1

在Javascript中,你不能自己'释放'任何内存;你所能做的就是删除对象使用的所有内存引用,并且JS引擎的垃圾收集器将恢复它。将变量/属性设置为空将是一个很好的起点。

至于使用'删除',我还没有找到比http://perfectionkills.com/understanding-delete/更好的理解它的资源。

相关问题