js之垃圾回收机制

js就像java一样拥有自动分配内存+垃圾回收机制

在写代码的时候不注意就会造成内存泄漏

解决方案:

1.引用计数算法

var a={ a:1}//计数1

var b=a;//计数2

a=null;//计数1

b=null;//计数0

提升释放内存

2.标记清除算法

但是引用计数算法是有缺陷的,当发生循环引用的时候就没法释放内存了

例如:

var obj1={};

var obj2={};

obj1.a=obj2;

obj2.a=obj1;

这个时候形成了一个锁,所以很多浏览器不支持引用计数算法了

所以这个算法就是从window找不到的数据都标记为垃圾,把要回收的对象包在局部中就可以回收了比如:

function a (){

var obj1={};

var obj2={};

obj1.a=obj2;

obj2.a=obj1;

}

发布了52 篇原创文章 · 获赞 2 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/liz9411/article/details/104004274