闭包的理解

闭包

闭包是指有权访问另一个函数作用域中的变量的函数

  • 一个函数里面嵌套另外一个函数。嵌套(内部)函数对其容器(外部)函数是私有的。它自身就形成了一个闭包。
  • 一个闭包是一个可以自己拥有独立的环境与变量的的表达式(通常是函数,因为ES6有了块级作用域的概念)。
 function t2() {
			var b = 100;
			function t3() {
				return ++b
			}
			return t3;
		}
		var t4 = t2()       //  函数t2 被赋给了变量 t4 t4是个全局变量 不会被销毁  所以相当于 t3 不会销毁 也会存在
		console.log(t4()) //101
		console.log(t4())  //102

解释:t2在赋给 t4 之前 t2被执行一次(因为’t2()’),在t2中 返回t3 而t3在t2中相当于全局作用域 ,形成闭包,t4是个全局变量 不会被销毁 所以相当于 t3 不会销,也会存在 所以对于b的引用一直存在

js垃圾回收
  • 在javascript中,如果一个对象不再被引用,那么这个对象就会被GC回收;
  • 如果两个对象互相引用,而不再被第3者所引用,那么这两个互相引用的对象也会被回收。
闭包好处
  • 希望一个变量长期驻扎在内存中
  • 避免全局变量的污染
  • 私有成员的存在
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值