当前位置: 首页 > news >正文

JS中的闭包

1.闭包

1.1闭包的含义

  • 一个普通的函数function,如果它可以访问外层作用于的自由变量,那么这个函数就是一个闭包;
  • 从广义的角度来说:JavaScript中的函数都是闭包;
  • 从狭义的角度来说:JavaScript中一个函数,如果访问了外层作用于的变量,那么它是一个闭包;
  • 普通闭包 
let a = 1;const addNum = () => {// JS中的一个函数如果访问了外层的一个变量就会形成闭包a = a + 1;console.log(a);
};
addNum();
addNum();

 

  •  严格闭包
const test = () => {let a = 1;const addNum = () => {a++;console.log(a);};return addNum;
};const add = test();
add(); // 2
add(); // 3

 

1.2闭包的组成:函数+可以访问的自由变量

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C语言指针进阶二:(函数指针数组,转移表)
  • ElasticSearch学习笔记(三)RestClient操作文档、DSL查询文档、搜索结果排序
  • redis主从+高可用切换+负载均衡
  • FPGA开发:初识FPGA
  • 建行的一些记录
  • 更懂消费者 火山引擎数据飞轮助力乳企数智升级
  • AI机械键盘,罗技推出首款AI机械键盘K98M
  • 云计算之数据库
  • K8S 发布应用
  • 《零散知识点 · Kafka 知识拓展》
  • 前端项目开发之安装prettier和使用
  • 如何在平凡的生活中看到商机?
  • CSS - 搜索框小动效
  • ArcGIS Pro SDK (十二)布局 8 布局元素选择和更改
  • 秒懂:进程(概念初晓)
  • 0x05 Python数据分析,Anaconda八斩刀
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • Docker: 容器互访的三种方式
  • Laravel 中的一个后期静态绑定
  • MySQL-事务管理(基础)
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • PAT A1092
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • React-生命周期杂记
  • spring cloud gateway 源码解析(4)跨域问题处理
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 将回调地狱按在地上摩擦的Promise
  • 聊聊directory traversal attack
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 使用parted解决大于2T的磁盘分区
  • ​​​​​​​开发面试“八股文”:助力还是阻力?
  • ​​​【收录 Hello 算法】10.4 哈希优化策略
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • ## 基础知识
  • #HarmonyOS:软件安装window和mac预览Hello World
  • (31)对象的克隆
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (javascript)再说document.body.scrollTop的使用问题
  • (void) (_x == _y)的作用
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (四)Controller接口控制器详解(三)
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • (轉貼) 2008 Altera 亞洲創新大賽 台灣學生成果傲視全球 [照片花絮] (SOC) (News)
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]
  • ./configure、make、make install 命令
  • .MyFile@waifu.club.wis.mkp勒索病毒数据怎么处理|数据解密恢复
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .Net Core与存储过程(一)