最近读了几篇关于内存泄漏的一些文章,是懂非懂 ... 
   $(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 全局变量?
闭包内存泄漏

解决方案 »

  1.   

    楼主一点一滴的学习闭包吧
    num是局部变量,是a运行时VO对象的属性,当a运行完,没有全局变量访问VO对象,因此VO对象会被垃圾回收,num是它的属性自然也被销毁,不需要写num = null。
      

  2.   

    我说的有点问题,应该是
    num是局部变量,是a运行时VO对象的属性,当a运行完,没有全局变量访问EC对象,因此EC对象会被垃圾回收,而EC对象里存储着VO对象,num又是VO对象的属性,因此他们都会被销毁,不需要写num = null。 
      

  3.   

    闭包内部执行完   如果没有对外部数据进行操作的话
    都是自动销毁的 之前做的一个项目有内存泄露的问题  是因为调用了ocx插件 
    二进制数据被保存了
    xxx = null  在这个时候才有用
      

  4.   

    嗯,感谢大家教导,略懂了 
    http://www.cnblogs.com/TomXu/archive/2011/12/15/2288411.html
    我是从这里学的。分享一下