当一个函数执行完毕后,如果它的执行上下文被闭包引用,那么该执行上下文将会一直存在内存中,直到闭包被销毁。闭包被销毁时,它引用的所有变量和函数的执行上下文也会随之被销毁。垃圾回收机制通常在内存达到一定使用量后自动触发,浏览器中使用的是标记-清除算法。在闭包中,函数作用域被保存在闭包内部的[[Scope]]属性中,当闭包被创建时,该属性会保存对函数作用域的引用,使得函数作用域可以一直存在于内存中。
上一篇:闭包的正式定义是什么?它是否取决于编程语言?
下一篇:闭包调用参数不匹配:flutter中的函数'[]'