With Array
我知道您可以使用delete
关键字从Array
中移除项目。但是,delete
不会删除变量。正确的方式来“删除”一个属性?
var b = "some stuff";
delete b;
console.log(b); // "some stuff"
什么是“释放”b
使用的内存的正确方法?做b = null;
只是做诡计吗?
With Array
我知道您可以使用delete
关键字从Array
中移除项目。但是,delete
不会删除变量。正确的方式来“删除”一个属性?
var b = "some stuff";
delete b;
console.log(b); // "some stuff"
什么是“释放”b
使用的内存的正确方法?做b = null;
只是做诡计吗?
这个问题可能有重复about unsetting variables in Javascript有一些很好的答案。简短的回答 - null
可能没问题。
在Javascript中,你不能自己'释放'任何内存;你所能做的就是删除对象使用的所有内存引用,并且JS引擎的垃圾收集器将恢复它。将变量/属性设置为空将是一个很好的起点。
至于使用'删除',我还没有找到比http://perfectionkills.com/understanding-delete/更好的理解它的资源。
如果您不知道:如果'b'在函数范围内声明,您可能根本就不用担心它。一旦执行离开函数范围,如果你没有其他引用,它就像你希望的那样自由。 –
@JamesClark,但有人可能会遇到'b'正在加载大量数据的情况,以至于在加载另一块数据之前它必须被释放 – puk