面试回答之闭包

理解:函数内部返回一个函数,这个内部函数引用外部函数的变量,被引用的外部函数的变量不会被立即销毁。

用途:

1.封装变量: 闭包能够创建私有变量,防止全局污染。通过闭包,你可以使用 getter 和 setter 函数控制对变量的访问,实现更安全的代码。 

2.保存状态: 闭包让函数在执行时可以保存状态,这意味着函数在后续调用中能够记住之前的状态。在循环中使用闭包,可以保存每次迭代的状态,非常有用。 

3.实现模块模式: 通过闭包,你可以创建类似于模块的结构,将一组相关的功能封装在一个闭包内部。这样做有助于组织和管理代码,避免全局命名空间的混乱。 

4.异步编程: 在异步操作中,闭包可以捕获外部变量,确保在异步操作完成后仍然可以访问这些变量。这在事件处理、回调函数和 Promise 中经常被使用。

缺点:

闭包可能会导致内存泄漏。

因为闭包中引用外部变量不会被垃圾回收机制回收,直到闭包不再被引用。因此,使用闭包时,需要注意避免过度引用外部变量,特别是循环引用的情况。

我们可以主动将已使用的闭包函数赋值为null可以销毁闭包,确保应用的性能和内存管理得以优化。

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值