闭包和内存泄漏的基础问题

keatkeat1987 2013-10-30 05:43:57
最近读了几篇关于内存泄漏的一些文章,是懂非懂 ...
   $(function() {
a();
});
function a() {
var num = 10; //这里的num 是否会一直存在缓存? 能否清除?
var c = function(para) {
alert(num + para);
};
b(c);
num = null; //这样能清除?
}
function b(c) {
c(5);
}


还有一般上ajax从数据库调回来的数据应该缓存在哪里? js 全局变量?
...全文
184 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
keatkeat1987 2013-11-03
  • 打赏
  • 举报
回复
嗯,感谢大家教导,略懂了 http://www.cnblogs.com/TomXu/archive/2011/12/15/2288411.html 我是从这里学的。分享一下
zhjdg 2013-10-31
  • 打赏
  • 举报
回复
看过那些内存泄漏的一些文章? 贴几个链接来看看。
萧萧可乐 2013-10-31
  • 打赏
  • 举报
回复
闭包内部执行完 如果没有对外部数据进行操作的话 都是自动销毁的 之前做的一个项目有内存泄露的问题 是因为调用了ocx插件 二进制数据被保存了 xxx = null 在这个时候才有用
天际的海浪 2013-10-30
  • 打赏
  • 举报
回复
当闭包内创建的一个函数被传递到闭包之外,那么同在这个闭包中创建的变量就不会被销毁,直到那个传递到闭包之外的函数被销毁时才跟着一起销毁。
xinfucheng 2013-10-30
  • 打赏
  • 举报
回复
我说的有点问题,应该是 num是局部变量,是a运行时VO对象的属性,当a运行完,没有全局变量访问EC对象,因此EC对象会被垃圾回收,而EC对象里存储着VO对象,num又是VO对象的属性,因此他们都会被销毁,不需要写num = null。
xinfucheng 2013-10-30
  • 打赏
  • 举报
回复
楼主一点一滴的学习闭包吧 num是局部变量,是a运行时VO对象的属性,当a运行完,没有全局变量访问VO对象,因此VO对象会被垃圾回收,num是它的属性自然也被销毁,不需要写num = null。

87,992

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧