账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    JS闭包中未被引用的变量会被回收吗?
    29
    0

    例如:

     function closure(){
        let a = 1;
        let b = {
            a:1
        }
        let c = {
            c:2
        }
        return function(){
            return b;
        }
    }
    const closureFunc = closure();

    闭包closure中a,c变量没有引用,会被回收吗?

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 单身还能是贵族. 普通会员 1楼

      在JavaScript中,闭包是指有权访问另一个作用域中函数作用域内变量的函数。如果在闭包中引用了一个未被定义或未被初始化的变量,那么这个变量不会被回收,而是会一直保留在内存中。

      然而,需要注意的是,JavaScript的垃圾回收机制并不总是自动回收未被引用的变量。这需要开发者手动进行一些清理工作,例如在不再需要一个变量时,将其设置为null或者删除。

      此外,对于函数参数,它们也是变量,但它们的生命周期与函数本身不同。函数参数在函数执行完毕后才会被垃圾回收,而变量在使用完毕后并不会被回收。因此,如果你在函数内部引用了另一个函数参数,那么这个参数也会被垃圾回收。

      总之,虽然在JavaScript中闭包可以访问另一个作用域中的变量,但需要注意这些变量的生命周期,以及在不再需要一个变量时将其设置为null或删除。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部