Js内存管理机制

  1. 管理内存

    javascript的内存使用机制:使用具备垃圾回收机制的语言编写程序,开发人员一般不必操心内存管理的问题,但是,javascript在面对内存管理和垃圾回收的问题还是有点与众不同的。其中最主要的原因是:分配给 web浏览器的可用内存数量要比较分配给桌面应用程序的少。这样做的目的在于安全方面的考虑,目的是防止运行的Javascript的网页耗尽全部系统内存而导致系统崩溃。

     内存限制问题带来的影响:影响给变量分配内存,同时还会影响调用栈以及在一个线程中能够同时执行的语句数量。

       如何管理内存?

      • 解除引用(dereferencing) 为执行中的代码只保存必要的数据。一旦数据不再使用,最好通过将其设置为null 来释放其引用。这种办法适用于大多数的全局变量和全局对象的属性。 局部变量会在它们离开执行环境时,自动被解除引用。
function createPerson(name){
    var localPerson = new Object();
    localPerson.name = name;
    return localPerson;
}
var globalPerson = createPerson("Nijie");

//手工解除 globalPerson的引用
globalPerson = null;
View Code

        在这个例子中,变量 globalPerson取得了 createPerson()函数的返回值。

        在createPerson()函数的内部,我们创建一个对象,并将其赋值给局部变量 localPerson,然后又为该对象添加一个名为name的属性,最后,当调用这个函数的时候,localPerson() 函数执行完毕就离开了其执行环境,因此无需我们显示的为他解除引用。但是对于全局对象 globalPerson 而言,则需要我们在不使用它的时候,手工为它解除。

        注意:解除一个值的引用并不是意味着自动回收该值所占用的内存。解除引用的真正作用在于让值脱离执行环境。以便垃圾收集器下次运行的时候将其回收。

        

posted @ 2014-07-13 12:44  jienyi  阅读(145)  评论(0编辑  收藏  举报