什么是JavaScript中的闭包及其作用?

admin 百科 13
闭包是JavaScript中函数与其词法作用域的组合,需满足函数嵌套、内部函数引用外层局部变量、外层函数返回内部函数三条件,可封装私有变量、保持状态、避免全局污染、支持异步回调。

什么是JavaScript中的闭包及其作用?-第1张图片-佛山资讯网

闭包是 JavaScript 中一个函数和它所“记住”的词法作用域的组合。简单说,就是一个内部函数能访问并持续使用外部函数定义的变量,哪怕外部函数已经执行完了。

闭包是怎么形成的

必须同时满足三个条件:

  • 函数嵌套:内部函数写在外层函数里面
  • 内部函数引用了外层函数的局部变量(不是参数,也不是全局变量)
  • 外层函数返回了这个内部函数(或以其他方式让内部函数在外部被调用)

闭包的核心作用

它让局部变量“活”得更久,不被垃圾回收,从而实现几种关键能力:

  • 封装私有变量:比如计数器里的 count,外部无法直接修改,只能通过暴露的方法操作
  • 保持状态:每次调用闭包返回的函数,都能接着上一次的值继续计算
  • 避免全局污染:把变量关在函数里,不会和别的代码抢名字、互相干扰
  • 支持回调与异步场景:比如循环中绑定事件,靠闭包能记住每次迭代时的正确值

一个典型例子

下面这段代码就创建了一个闭包:

标签: javascript java 作用域

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~