大家都知道在function里面定义的变量在function外面是不能访问的,闭包就是为满足某些需要在函数外面访问函数内的变量的要求。
在看例子之前记住一个概念:函数就是一块儿保存了现有数据的内存。
下图中就是一个很简单的闭包,f是全局变量并指向f2,f2依赖于f1。闭包函数f1在f失效之前会一直保存在内存中。但是f2不会哦,因为f2没有被依赖。保存在内存中会发生什么样的事情呢,看例二吧!
![](https://img.haomeiwen.com/i11593087/a0d2c3795e8848ca.jpg)
这就是例二本例了,从例子可以看出f1里面的变量是一直在内存中保存着的,而不是我们惯性认为是函数调用一次之后就失效的。那f2呢?例三
![](https://img.haomeiwen.com/i11593087/8e705e3946b7b986.jpg)
不念叨了,看图吧。
![](https://img.haomeiwen.com/i11593087/6ff2c6bf251a1ae5.jpg)
路上打的这段文,经过n多诱惑还是没忍住…
![](https://img.haomeiwen.com/i11593087/d246e5645d97dff4.jpg)
网友评论