闭包

闭包

———— 先说闭包作用,闭包是为了长期使用函数内的变量,由于作用域的原因(不明白的可以看我的上一篇文章),函数外部是不能访问使用函数内部的变量的,但是我们如果想使用函数内部变量怎么办,这时候闭包就产生了,js函数执行完会自动删除不被使用的变量,这里面也涉及到浏览器的垃圾处理机制了,简单说一下,
两种垃圾处理机制,一中是引用计数,一种是标记清除,
————用计数就是 变量被引用了计数加1,如果引入计数为0说明没有被使用就会被清理,该方式会引起内存泄漏的原因是它不能解决循环引用的问题,也就是A里有个指针指向B ,B里有个指针指向A,这样引入计数都是2,就永远不会被释放,
————标记清除,如果函数执行结束时会检测函数内声明的变量有没有被使用,如果没有继续被使用,将会标记,浏览器每隔一段时间会清空掉带有标记的变量。
所以说闭包能使用函数内变量,是因为该变量没有被标记,或正在被引用。
在这里插入图片描述
一段简单闭包代码,如果不想继续操作函数内的变量了。。记得清空b,b=undefined

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值