Javascript可以执行一些显式/手动内存操作吗?
在C语言中,如果我不需要特定的内存区域,我可以手动删除这些内存区域。我想知道在Javascript中,我可以做同样的事情 或者我可以利用虚拟内存接口。否。您也不应该“需要”这样做。Javascript管理内存,不公开其实现 (这对于垃圾收集之类的事情非常非常有用,尤其是停止和复制种类。) 只要您没有对对象的引用,Javascript就可以释放该内存。实现在实际释放内存(也称为垃圾收集)的频率上有所不同,但如果内存耗尽,它们肯定会这样做Javascript可以执行一些显式/手动内存操作吗?,javascript,Javascript,在C语言中,如果我不需要特定的内存区域,我可以手动删除这些内存区域。我想知道在Javascript中,我可以做同样的事情 或者我可以利用虚拟内存接口。否。您也不应该“需要”这样做。Javascript管理内存,不公开其实现 (这对于垃圾收集之类的事情非常非常有用,尤其是停止和复制种类。) 只要您没有对对象的引用,Javascript就可以释放该内存。实现在实际释放内存(也称为垃圾收集)的频率上有所不同,但如果内存耗尽,它们肯定会这样做 var a = {a: 1}; // can't garba
var a = {a: 1};
// can't garbage collect {a: 1}
a = null;
// can garbage collect {a: 1}
var b = {b: 1};
// can't garbage collect {b: 1}
var c = b;
// can't garbage collect {b: 1}
b = null;
// can't garbage collect {b: 1}
c = null;
// can garbage collect {b: 1}
也许你应该问一个更高层次的问题,关于你想要完成什么。Javascript不允许你手动清除内存。当它为你做的时候,你也不应该担心它 另一方面,当没有对已用内存的引用时,javascript会清除该内存。你所能做的就是删掉那些引用。比如说:
var x = some object;
x = null;
请在JS中提供一个真实的例子。对于一些巨大的内存操作,我想释放一些。Chrome只有32位,如果没有它,很难使用JS执行巨大的内存操作。如果你停止使用某些东西(无法从当前/全局作用域访问对象),它会自动释放。确实如此,但不幸的是,垃圾收集器不会立即调用。@MatúDúbrava:它实际上是“幸运的”:-)