Js闭包

简介

在说闭包函数之前,首先了解一下函数,一个函数分为定义阶段和调用阶段。函数定义阶段:在内存中开辟一个存储空间,并把这个空间的地址赋值给函数名。函数调用阶段:按照函数名找到对应的存储空间=>从新开辟一个函数执行空间=>在这个执行空间里进行新参赋值,和预解析=>把函数空间的代码复制一份到执行空间里执行=>执行完之后,这个开辟出来的执行空间,会执行空间销毁

闭包函数的作用

闭包函数的使用,1.可以延长一个变量的生命周期;2.可以让我们在函数的外部访问内部的数据;3.也可以保持私有变量

但闭包函数也有一个致命的缺点:当一个内存空间中有一个不会被销毁的东西一直存在时,那么就会出现内存占用,如果内存过多,就会导致内存溢出

什么是闭包函数

首先作为一个闭包函数要有一个不会销毁的函数执行空间,同时闭包函数的生成必须具备三个条件,且这三个条件缺一不可,
1.在函数a内部直接或间接返回一个函数b
2.b函数内部使用着a函数的私有变量
3.a函数外部有一个变量接收着函数b
在这里插入图片描述
因为函数a内部返回的是一个复杂数据类型(b函数),所以a函数的执行空间不会被销毁,变量num也不会被销毁
这个时候我们就把不会销毁的a函数的执行空间叫做闭包空间
把函数a里面返回的函数b,叫做函数a的闭包函数


家中逆战,无畏疫情

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值