2018-01-10

2018-01-10  本文已影响0人  小付君

js中的闭包

一.什么是闭包

       闭包官方的解释是:闭包就是能够读取其他函数内部变量的函数。由于在javascript中,只有函数内部的子函数才能读取局部变量,所以闭包可以理解成“定义在一个函数内部的函数。在本质上,闭包是将函数内部和函数外部连接起来的桥梁。

    通俗话讲闭包就是:函数f内部定义了一个函数,且该函数调用了函数f内部的变量,此时这个函数就是闭包。例如:

图1

二.闭包的优点

    js中在函数外面无法访问函数内部的变量,但是闭包的出现解决了这一现象。闭包延长了变量的生命周期,使得函数外也可以访问函数内部的变量。例如:

图2

三.闭包的缺点

正是由于闭包延长了变量的生命周期,所以会造成内存空间的泄漏,因为系统对于函数内部变量的回收不及时。如下:

图3
上一篇 下一篇

猜你喜欢

热点阅读