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

JavaScript中的闭包

闭包

闭包是什么

  1. 内部函数(嵌套函数)能够访问其外部函数(父函数)的变量,即使外部函数执行完毕后,这些变量仍会保留在内存中,因为内部函数保持着对它们的引用,从而防止了垃圾回收机制回收这些变量。
  2. 闭包是函数与其词法环境(包括外部函数的变量)的组合,这种组合使得函数能够记住并访问其被定义时的环境。
  3. 在JavaScript中,内层函数(嵌套函数)具有访问其外层函数作用域的能力,这种特性是通过闭包实现的,它允许内部函数访问和操作在外部函数中定义的变量。

闭包的几种用法

// 函数作为返回值的场景
function mail(){let content = "cui"return function (){console.log(content)}
}const envelop = mail()
envelop() // 拿到内部的值// 函数作为参数的时候
let content;
function envelop(fn){content = 1;fn();
}function mail(){console.log(content)
}
envelop(mail)// 函数的嵌套
let counter = 0;function outerFn(){function innerFn(){counter++;console.log(counter)}return innerFn;
}
outerFn()();

利用闭包实现私有变量

function createStack(){return {items:[]push(item){this.item.push(item)}
}const stack = {item:[],push:function(){}
}function createStack(){const items = [];return {push(item){items.push(item)}}
}
http://www.lryc.cn/news/353876.html

相关文章:

  • python画图:matpolt,设置图片尺寸,字体大小,副坐标轴,保存
  • 如果突然失业,靠这个项目也能养活自己,6天收入3K
  • 【OpenCV 基础知识 13】高斯平滑处理图像
  • web安全渗透测试工具篇(二):sqlmap常用命令和nmap常用命令
  • STM32 USART的字符编码(发送器的实现逻辑)
  • [市赛2024-X2]自习室
  • Spring ----> IOC
  • AI重塑保险业未来:机器学习在风险评估、欺诈检测与客户服务中的深度应用
  • 某某某加固系统分析
  • 嵌入式之音频基础知识
  • 如何做好软件项目的沟通管理
  • linmux
  • Vue3学习-vue-router之路由传参
  • ubuntu20.04 10分钟搭建无延迟大疆无人机多线程流媒体服务器
  • hugging face笔记:PEFT
  • 作业5.26
  • 银河麒麟服务器系统xshell连接之后主动断开,报错socket error event:32 Error:10053问题分析
  • 蓝桥杯算法心得——李白打酒(加强版)
  • java练习2
  • 【安装笔记-20240523-Windows-安装测试 ShareX】
  • 2024年150道高频Java面试题(七十一)
  • 【深度学习】2.单层感知机
  • JS经常碰见的报错问题
  • 纯前端实现截图功能
  • 【网络协议】应用层协议--HTTP
  • 【图书推荐】《Vue.js 3.x+Element Plus从入门到精通(视频教学版)》
  • 抖店如何打造出爆品?学好这几招,轻松打爆新品流量
  • 软件需求规范说明模板
  • vs2013使用qt Linguist以及tr不生效问题
  • Leetcode 3163. String Compression III