认识
2023年03月16日
一、认识
从词法环境来看 闭包(Closure)
函数和其周围的状态(词法环境)的引用捆绑在一起形成闭包。
从写法形式来看 闭包(Closure)
是可以在另一个作用域中调用一个函数的内部函数并访问到该函数的作用域中的成员。所以闭包的核心作用就是将函数内部成员的作用范围延长。一般情况下函数执行完毕后会将函数内部成员所占内存也释放掉,但是如果函数在执行过程中返回了一个内部成员并且外部对这个成员有引用,此时函数的内部成员不会随着函数的执行完毕而销毁。
闭包的本质 函数在执行的时候会放到一个执行栈上,当函数执行完毕之后会从执行栈上移除。但是堆上的作用域成员因为被外部引用不能被释放,因此内部函数依然可以访问到外部函数的成员。