闭包

闭包就是函数嵌套函数,也是变量作用域的特殊情况
两种特殊情况:

  1. 函数作为参数被传入
  2. 函数作为返回值被返回

作用:保持局部变量不会销毁, 实现了局部变量不会被销毁

代码:

  • 函数作为参数被传入
function print(fn){
	let a=200;
	fn()
}
var a=100;
function fn(){
	alert(a);
}
print();

闭包:自由变量的查找,是在函数定义的地方,向上级作用域查找,不是在函数执行的地方查找

  • 函数作为返回值被返回
function create(){
	let a = 100;
	 return function(){
	 	console.log(a)
	 }
}
let fn = create();
let a = 200;
fn();

总结:
什么是闭包?
闭包是变量作用域的特殊情况

  1. 函数作为参数被传入
  2. 函数作为返回值被返回

闭包的作用与优缺点,闭包的引用场景

  1. 闭包是函数嵌套函数,所以形成了函数变量的局部作用域,避免变量被全局污染

  2. 当闭包作为返回值是引用的局部变量不会销毁

  3. 应用场景:
    封装组件希望组件是局部作用域,事件引用,循环中形成局部作用域

    使用闭包应该注意 自由变量(函数中变量)查找是在函数定义的荻港,不是执行的地方

  4. 缺点:变量不会被销毁,可能会造成内存泄漏

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值