首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JavaScript变量的生命周期

JavaScript变量的生命周期
EN

Stack Overflow用户
提问于 2010-04-22 19:55:02
回答 2查看 7.4K关注 0票数 9

在JavaScript中,用"var“声明的变量的生命周期是多少。我敢肯定,这绝对不符合预期。

代码语言:javascript
运行
复制
<script>
function(){
   var a;
   var fun=function(){
     // a is accessed and modified  
     }
}();


</script>

在这里,JavaScript如何以及何时对变量a进行垃圾回收?由于a是内部函数闭包的一部分,理想情况下它永远不应该被垃圾回收,因为内部函数fun可以作为对外部上下文的引用传递。因此,fun应该仍然能够从外部上下文访问a

如果我的理解是正确的,那么垃圾收集是如何发生的,以及它如何确保有足够的内存空间,因为在程序执行之前将所有变量保留在内存中可能是不可行的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-04-22 20:28:21

ECMAScript规范并没有指定垃圾收集器应该如何工作,它只说明如果标识符是可访问的(通过直接指针或闭包),它就不应该是GCed。

查看有关ECMAScript中的标识符解析、闭包、作用域链和垃圾收集的this文章。

希望能有所帮助

票数 4
EN

Stack Overflow用户

发布于 2010-04-22 20:58:51

只要存在对“fun”的外部引用,“a”就不会被垃圾回收。浏览器通过向操作系统请求更多内存来确保它有足够的内存。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2690499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档