垃圾回收是javascript内部会自动帮你执行的一件事, 他会定期周期性的去找那些不在使用的变量, 然后释放他的内存
常见的垃圾回收机制有两种 引用计数 和 标记清除
引用计数
将出现的每个对象记录他的引用次数, 每当数据被访问或者被其他变量引用的时候那就为这个数据添加一个计数器, 记录他被引用的次数,当他的引用次数为0的时候就进行垃圾回收。
标记清除
当一个变量进入环境的时候, 就为这个变量做上一个标记,认为他存在, 当他离开环境的时候就标记为离开, javascript 会定期的去释放标记为离开的变量。
可达性
javascript 中主要的内存管理概念是可达性。某个值可以通过引用链被访问到,那么那个值是可达的。如果某个值具有可达性,那么该值一定在内存当中。
有些可达值是固定的、不能被释放的,叫做根。例如:全局变量、当前执行的函数及其局部变量和参数等
javascript有垃圾回收器,会监听所有对象的状态,并自动进行垃圾回收。
当有多个引用时
如果删除mother引用,可以通过family.father.wife访问到张小丽
如果把family.mother和family.father.wife都删除
如果把根移除了