闭包会产生内存的泄露
有个问题。就是 外围函数执行完毕以后,它的活动对象就销毁。
这个时候 如果有闭包。那么它的活动对象就不能销毁。
但是 我觉得 闭包 不是在外围函数里头吗,外围函数和闭包应该是个整体才对。外围执行完毕则闭包也应该是执行完毕的。

解决方案 »

  1.   


    function func(seperator)
    {
    function show(str1,str2)
    {
    alert(str1+seperator+str2);
    }
    return show;
    }
    var show=func("//");
    show("D:","My Documents");这样就构成一个闭包了么(新手勿喷)?
    这样内存无法释放是因为尚有引用指向它,这也不是内存泄露啊?
      

  2.   

    对象实例相互引用,循环引用造成了GC不能释放了
    参考http://blog.csdn.net/birdwindy/archive/2007/12/13/1934017.aspx
      

  3.   

    特别注意,浏览器回收内存方式有个漏洞,js与dom对象的内存管理是分开处理的。当javascript对象与dom对象循环引用的时候这部分内存一直都不会被回收,内存管理会觉得他们被引用了(但是不知道另外的js对象或者dom也是没用了的),所以不会被回收。