JS 中的闭包

2024-06-30  本文已影响0人  WebsnowDrop

常见的面试题什么是闭包

闭包是 JS 的一种 语法特性,其他语言也有这种特性
参考MDN上闭包的定义:
闭包(closure)是一个函数以及其捆绑的周边环境状态(lexical environment,词法环境)的引用的组合。换而言之,闭包让开发者可以从内部函数访问外部函数的作用域。

重点:闭包让开发者可以从内部函数访问外部函数的作用域。
举个例子:

const add2 = function (){
  var count = 0
  return function add (){ // 访问了外部变量的函数
  count += 1
  console.log(count)
}
}()
add2() //1
add2() // 2

我的理解

根据MDN 定义,闭包是一个函数以及其捆绑的周边环境状态的引用的组合。结合上面的例子闭包就是:
闭包 = 函数 add + 自由变量 a,

注意:闭包既不是 函数 add,也不是局部变量 a,而是二者组成的整体

闭包的优点

闭包的缺点

上一篇下一篇

猜你喜欢

热点阅读