导图社区 JS闭包
js中的闭包 闭包(closure)是Javascript语言的一个难点,也是它的特色。 闭包的作用:通过一系方法,将函数内部的变量(局部变量)转化为全局变量。 要理解闭包,首先...
自媒体各种图片尺寸,主要包括:微信公众号、视频号/抖音、微博、小红书四部分内容。希望对你有所帮助!
职能型组织结构思维导图,包括:信息、简介、结构介绍、主要特点、结构缺点、适用性应用。希望对你有所帮助!
药店2.0时代思维导图,主要内容有:中国药店创新趋势报告、我国药店、我国药店行业、我国药店。
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
JS闭包
和闭包相关的上级作用域
上级作用域概念
查找上级作用域方式
堆栈内存释放
即使外部函数栈内存已经释放闭包依旧存在
堆内存
存储引用类型值,对象类型就是键值对,函数就是代码字符串
将引用类型的空间地址变量赋值成'null'
栈内存
提供代码执行的环境和存储基本类型值
函数执行完后函数的私有作用域就会被释放掉
闭包是什么
闭包就是有权访问另一个函数作用域变量的函数
形成闭包的原因
存在上级作用域的引用
闭包的作用
保护
保护函数的私有变量不受外部干扰
形成不被销毁的栈内存
保存
将上级作用域的引用保存下来,,实现方法或属性的私有化
闭包经典使用场景
使用return返回函数
函数作为参数
IIFE自执行函数
定时器setTimeout和自执行函数
所有的回调函数
使用闭包需要注意
容易导致内存泄漏,因为存在其他作用域的引用,过度使用闭包会使内存占用过多
经典面试题
for循环的事件赋值引用
使用闭包来改善
使用let来改善