函数的闭包

函数的执行空间会在函数执行完毕之后销毁

但是,一旦函数内部返回了一个 引用数据类型,并且 在函数外部有变量接受 的情况下

那么这个函数 执行空间 就不会销毁了

function fn() {
  const obj = {
      name: 'Jack',
      age: 18,
      gender: '男'
  }
  
  return obj
}

const o = fn()

闭包就是利用了这个函数执行空间不销毁的逻辑

闭包概念

1、有一个 A 函数,再 A 函数内部返回一个 B 函数;
2、再 A 函数外部有变量引用这个 B 函数;
3、B 函数内部访问着 A 函数内部的私有变量。
以上三个条件缺一不可

闭包的特点

为什么要叫做特点,就是因为他的每一个点都是优点同时也是缺点
1、作用域空间不销毁
优点: 因为不销毁,变量页不会销毁,增加了变量的生命周期
缺点: 因为不销毁,会一直占用内存,多了以后就会导致内存溢出
2、可以利用闭包访问再一个函数外部访问函数内部的变量
优点: 可以再函数外部访问内部数据
缺点: 必须要时刻保持引用,导致函数执行栈不被销毁
3、保护私有变量
优点: 可以把一些变量放在函数里面,不会污染全局
缺点: 要利用闭包函数才能访问,不是很方便

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值