请问:
一:
function a(){....}
a();
二:
var a1=a;
a1();
我的理解是:第一种方法:a函数里的局部变量会在a();后立刻被回收。第二种方法:a函数里的局部变量因为有a1引用的存在,所以没有被回收。所以最好最后加上a1=null;解除引用,使a函数的局部变量可以在下一次垃圾回收器启动时被回收。请问这种理解有错误吗?
第一种方法是执行后立刻回收吗?还是等下一次垃圾回收器启动时回收?
函数会因为被引用,因而里面的局部变量即使在函数执行后也不会被回收吗?请指教!~谢谢~~~
一:
function a(){....}
a();
二:
var a1=a;
a1();
我的理解是:第一种方法:a函数里的局部变量会在a();后立刻被回收。第二种方法:a函数里的局部变量因为有a1引用的存在,所以没有被回收。所以最好最后加上a1=null;解除引用,使a函数的局部变量可以在下一次垃圾回收器启动时被回收。请问这种理解有错误吗?
第一种方法是执行后立刻回收吗?还是等下一次垃圾回收器启动时回收?
函数会因为被引用,因而里面的局部变量即使在函数执行后也不会被回收吗?请指教!~谢谢~~~
var b = a;
alert(b==a);
alert(window.b == window.a);
alert(b); //从这3个alert你应该明白a与b的关系了.你能调用多少次a()就能调用多少次b()
b();
b = null;
alert(b) //一个值为null的变量,而此时a这个函数还在。