这两天在苦苦钻研闭包,因为之前对闭包的接触并不多,于是大量在网上找资料。怕遗忘,登录博客,记录下来。
什么是闭包,记得刚学习JS的时候,说闭包就是外部调用内部函数的变量。楼主当时比较浮躁,就以为是个很简单的东西,也就没有深究,但是随着,写的代码多了,感觉闭包真的非常有用。到目前为止,用的最后就是匿名函数自调用。
首先看我的两个案例,作用域和执行顺序。
第一个弹出的是10,for循环执行完了,才调用函数aa(),这个时候i刚好等于10,于是alert(i)这个i引用了此时的i=10;
第二个我们大家都知道,弹出的1...9,因为一边循环一边执行,这个我们应该都理解.第二个函数等同于下面这个匿名自调用函数.
其实上面这个已经叫做闭包了。
我自己的理解什么是闭包:能够让外部函数访问内部函数变量的过程叫做闭包。