闭包的简单理解

闭包

1.什么是闭包?

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

2.如何形成闭包

  • 内部函数使用外部函数的变量
function a() {
  let aa = 100;
  function b() {
    console.log(aa);	//	由于引用了上级作用域中的变量 aa, 所以形成了闭包
  }
  b();
}
a();
function a() {
  let aa = 100;
  function b() {
    console.log(b);	// b 是上级作用域,函数 a 中声明的一个函数
  }
  b();
}
a();

3.如何保持闭包

  • 内部函数返回到外部函数的外面
function a() {
  let aa = 100;
  function b() {
    console.log(aa);
  }
  return b;
}
a();

4.闭包的使用场景

  • 防抖,节流的实现中 return 的函数
  • IIFE(自执行函数)
let name = 'ab';
(function p(){
    console.log(name);
})();
// 输出  ab

5.闭包的特点

  • 闭包可以访问到父级函数的变量
  • 访问到父级函数的变量不会销毁
  • 变量不会被垃圾回收机制回收,这就会造成内存消耗
  • 不恰当的使用闭包可能会造成内存泄漏
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值