2018-01-10

js中的闭包

一.什么是闭包

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

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

图1

二.闭包的优点

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

图2

三.闭包的缺点

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

图3
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容