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

JavaScript-闭包

闭包概念

在JS中,变量的作用域属于函数作用域,在函数执行后作用域就会被清理、内存也随之回收,但是由于闭包是建立在一个函数内部的子函数,由于其可访问上级作用域的原因,即使上级函数执行完,作用域也不会随之销毁,这时的子函数——也就是闭包

形成: 函数中嵌套函数

作用: 函数内部调用外部变量、构造函数的私有属性、延长变量生命周期

优点: 希望一个变量长期存在内存中、模块化代码避免全局变量的污染、私有属性

缺点: 无法回收闭包中引用变量,容易造成内存泄漏

使用场景

  • ajax请求的成功回调
  • 事件绑定的回调方法
  • setTimeout的延时回调
  • 函数内部返回另一个匿名函数
  • 构造函数的私有属性
  • 计算缓存
  • 函数节流、防抖

http://www.dtcms.com/a/67033.html

相关文章:

  • 22 - 天 TCPIP 四层模型是什么?Cookie、Session、Token 之间有什么区别?从网络角度来看,用户从输入网址到网页显示,期间发生了什么?
  • UART转AHB总线接口参考设计介绍
  • 【cocos creator】游戏优化,内存,性能,包体积大小,加载,drawcall优化
  • 函数调用汇编
  • iPaaS集成平台轻量化架构的重要性
  • xlua 运行原理
  • DoS攻击防范
  • Linux中查询软件存在
  • 迪威 3D 模型发布系统:制造业产品展示革新利器
  • 多源 BFS_多源最短路(十八)542. 01 矩阵 中等 超级源点思想
  • 江科大51单片机笔记【16】AD/DA转换(下)
  • 完美解决ElementUI中树形结构table勾选问题
  • k8s环境部署
  • 算法每日一练 (10)
  • ai智能语音机器人对我们生活有什么影响
  • OpenAI智能体初探:使用 OpenAI Responses API 在 PDF 中实现检索增强生成(RAG)
  • 自然语言处理:文本聚类
  • 202250311-WINDOWS本地4G显存Docker运行vLLM
  • 垂起固定翼+多旋翼+自组网:无人机中低空一体化组网技术详解
  • 平时作业
  • 头歌java课程实验(Java面向对象 - 封装、继承和多态的综合练习)
  • C/C++都有哪些开源的Web框架?
  • 【软件】免费的PDF全文翻译软件,能保留公式图表的样式
  • 鲸鱼算法WOA对风电场风电机组一次二次调频参数进行全局最优辨识,二次调频参数辩识matlab/simulink,也可进一步修改成一次调频参数辩识
  • Nginx 限流功能:原理、配置与应用
  • talib编译whl文件通不过问题
  • i18n的替换处理
  • 【从零开始学习计算机科学】数据库系统(十一)云数据库、NoSQL 与 NewSQL
  • 智能化水利监管:无人机视频在违章行为识别中的应用
  • 基于java(springboot+mybatis)汽车信息管理系统设计和实现以及文档