JavaScript 中用“var”声明的变量的生命周期是多少。我敢肯定,这绝对不符合预期。
<script>
function(){
var a;
var fun=function(){
// a is accessed and modified
}
}();
</script>
JavaScript 垃圾如何以及何时收集变量a
?由于a
是内部函数闭包的一部分,理想情况下它不应该被垃圾收集,因为内部函数fun
可以作为对外部上下文的引用传递。所以fun
应该仍然可以a
从外部上下文访问。
如果我的理解是正确的,那么垃圾收集是如何发生的,以及它如何确保有足够的内存空间,因为将所有变量保留在内存中直到程序执行可能不成立?