引用计数
let a = { name: 'zengwe'};
let b = a;
// a 对象引用次数加1
a = null;
// a 对象引用次数减1
b = null; 引用次数减为0, 此时退出这个环境时变量的内存将被回收
循环引用
function test() {
let a = {name: 'zengwe'};
let b = {age: 18};
a.name = b;
b,age = a;
}
test();
此时当function执行完以后内存并不会被释放,因为a和b都各自被至少引用了1次;
以上的两种垃圾回收方法是最开始的方法,目前的方法是标记清除法
标记清除法
JavaScript 从全局开始找对象的引用, 找不到应用的对象将被清除!