闭包是如何形成的?

2 min read

闭包指的是函数加上该函数能够访问到的变量的共同体。闭包的形成需要满足两个条件:

  1. 函数嵌套:闭包必须嵌套在外部函数中。
  2. 内部函数引用外部函数变量:内部函数必须访问外部函数的变量,使得外部变量的值可以被内部函数访问。

当一个内部函数引用外部函数的变量时,当前作用域上下文会被保存在内存中的作用域链中。当内部函数返回后,其作用域链会被保留,即使内部函数不再执行,闭包依旧可以访问外部函数的变量。