A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

小志zys

初级黑马

  • 黑马币:8

  • 帖子:3

  • 精华:0

© 小志zys 初级黑马   /  2020-3-1 20:18  /  654 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 小志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.容易泄露数据信息

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马