[英]Javascript memory management in functions
示例代码如下;
function a() { var a = 123; //some stuff b(); } function b() { //some stuff } a();
所以我的问题是在执行b()时变量'a'是否在内存中?
谢谢。
是的。 它不在b()
的范围内,但它在内存中。
你不能只是神奇地删除a()
范围的对象。 你可以手动 delete a;
如果您不再需要它,但最好和最合理的方法是通过一个接一个地调用它们而不是嵌套调用:
function a() {
var a = 123;
//some stuff
}
function b() {
//some stuff
}
a();
b();
如果没有快速的方法,请考虑重构您的代码
这将是特定于实现的,并且是特定于程序的。 它将取决于它运行的确切javascript平台,诸如系统内存大小,以及在运行a()
之前分配了多少代码/多少变量。
你不能依赖它在b()
之前或期间被释放,因为垃圾收集是非确定性的。
在大多数情况下,它可能会留在记忆中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.