说到闭包,只听名字的话肯定会觉得笼统,太抽象啥的,但是理解后又不一样,本人比较菜,简单分享一下我对这个的理解,勿喷。

   说这个之前,咱得先捋一捋那个变量的作用域,我个人感觉闭包就是在这个基础上出现的,说到变量作用域,无非就是全局的跟局部的,举个例子,就比如你家弟兄三个,然后全局的就是你们的老妈是你们三个共同的,但是各自的媳妇又是各自的,这个就是局部;虽然扯  淡,但是话糙理不糙。记忆深刻。一般呢,我们声明那个全局变量基本上都是在函数var一个,声明局部就是在函数内部var一个,但是呢,需要注意一点就是函数内部你如果不写var,那不好意思,他就不是局部的了。这么说吧。函数的感觉就是一个屋子,那个var就像是个钥匙。全局的var呢,就跟大门钥匙是的,所以每个屋子也就是函数都能访问他,但是内部的就是各个屋子的钥匙,只能开自己的门;如果函数内部你不带var,那就是说我没你这个屋子的钥匙,但我能进来,我肯定也能进去别的屋子,那不就是全局了吗。

现在我们来说说这个闭包,闭包呢我个人觉得他就是个对象差不多。这里面的变量可以供多个函数调用。一般来说,因为js垃圾回收机制,一般函数内部调用过的都会被销毁掉了。就是那种,用过没用了,就抛弃了;然后我们闭包呢就是说,咱这个变量呢,我们都可以访问,因为我们知道,调用一次,他会return一下,返回一下,然后下一个有可以在调用,就跟这个屋子里有个孩子,他有好多的爸爸妈妈,就比如干妈干爸,然后每个干妈干爸都能去带他出去玩,比较正式的说法就是有权访问另一个函数的作用域。

posted on 2018-12-11 10:34  W2L  阅读(182)  评论(0)    收藏  举报