黑马程序员技术交流社区

标题: javascript心得 [打印本页]

作者: 小志zys    时间: 2020-3-1 20:18
标题: javascript心得
本帖最后由 小志zys 于 2020-3-1 20:22 编辑

分享一下Javascript的闭包
1. 提起 闭包 我们首先来重新认识一下函数
我们都知道函数有2个阶段:函数的定义阶段 和 函数的执行阶段
在函数的执行过程中,会独立开辟出一个执行空间,在这个空间里面去执行 这个函数,当函数执行完毕之后,这个执行函数就会被销毁,那么函数定义的局部作用域变量也会被销毁
2. 什么是闭包?
闭包是函数的一种高级应用方式
通过建立一个不被销毁的储存空间,来在函数的外部调用和使用函数内部的变量, 简单来说,就是访问函数内部定义的变量。
3. 形成闭包的3个必要条件
1>定义一个函数a,返回一个函数b
2>在返回的函数b中,使用函数a里面定义的变量
3>在函数a的外部,引用函数a和函数b
4. 我们用代码来看一下 function foo(){
let a='hellow;
return function(){
let obj={str:a}
return obj;
}
}
5. 闭包的优点 缺点

                优点:
                1.函数的作用域空间不会被销毁
                2.可以访问函数内部的变量
                3.保护私有作用域的变量
                缺点:
                1.占用大量的内存
                2.降低程序的执行效率
                3.容易泄露数据信息





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2