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