1000 这里就是闭包的第二个用途:f2这个闭包会让变量n的值始终保存在内存中 光靠代码来理解第二种用途,好像没有什么说服力,下面就用画图的方法来让大家更深刻的理解!! 第二种用途其实就和作用域链产生联系了,我来解释下: 闭包f2从f1函数中被返回后,它的作用域链被初始化为包含f1函数的活动对象和全局变量对象(黑线部分)。这样f2就可以访问在f1()函数中定义的所有变量。更为重要的是就算f1()被执行完毕后,它的活动对象也不会被销毁,因为如图f2这个闭包还在引用f1函数的活动对象,这也就是为什么上述第二种用途的原因:闭包会让变量始终保存在内存中,直到闭包被摧毁。
1000 这里就是闭包的第二个用途:f2这个闭包会让变量n的值始终保存在内存中 &