浅拷贝垃圾GC回收

175 阅读1分钟

觉得很重要 怕以后忘了 今天记录一下 2021.12.18

/* 设置a在栈中指向堆的内存地址为null 并不会影响b在栈中指向堆的内存地址

        JavaScript的堆内存不需要程序代码来显示地释放,因为堆是由自动的垃圾回收来负责的
        
        每种浏览器中的JavaScript解释引擎有不同的自动回收方式

        一个最基本的原则是:如果栈中不存在某个对象的引用,那么就认为该对象已经不再需要
        
        在垃圾回收时就会清除该对象占用的内存空间。

        因此,在不需要时应该将对象的引用释放掉,以利于垃圾回收,这样就可以提高程序的性能。
        */
        let a = {
            name: '张三'
        }
        let b = a
        a = null
        console.log(a); // null
        console.log(b); // {name: '张三'}