闭包

闭包

当一个函数的返回值是另一个函数,而返回的那个函数调用了其父函数的内部变量,切返回的那个函数在外部被执行,就产生了闭包
举个例子:

function fun(){
	let a = 100;
	return function(){
		cosole.log(a)
	}
}
let fn = fun()
let a = 200
fn()//100

//传一个函数作为参数
function fun(){
	let a = 200
	console.log(a)
}
let a = 100
function fn(){
	console.log(a)
}
fun(fn)//100

优点:
​ 1.避免全局变量的污染
​ 2.变量长期存储的内存中
3.私有成员的存在
​缺点:
​ 1.使用不当会造成内存泄漏
​ 如果闭包使用不当,就会导致变量不会被垃圾回收机制回收,造成内存泄露
​ 2.不能及时释放内存
​ 3.捕获的变量是引用,不是复制
​ 4.父函数每调用一次就会产生一次闭包

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值