今天给大家分享一下Javascript的闭包
1. 提起 闭包 我们首先来重新认识一下函数
我们都知道函数有2个阶段:函数的定义阶段 和 函数的执行阶段
在函数的执行过程中,会独立开辟出一个执行空间,在这个空间里面去执行 这个函数,当函数执行完毕之后,这个执行函数就会被销毁,那么函数定义的局部作用域变量也会被销毁
2. 什么是闭包?
闭包是函数的一种高级应用方式
通过建立一个不被销毁的储存空间,来在函数的外部调用和使用函数内部的变量, 简单来说,就是访问函数内部定义的变量。
3. 形成闭包的3个必要条件
1>定义一个函数a,返回一个函数b
2>在返回的函数b中,使用函数a里面定义的变量
3>在函数a的外部,引用函数a和函数b
4. 我们用代码来看一下 更方便理解
5. 闭包的优点 缺点
优点:
1>函数的作用域空间不会被销毁
2>可以访问函数内部的变量
3>保护私有作用域的变量
缺点:
1>占用大量的内存
2>降低程序的执行效率
3>容易泄露数据信息