函数的闭包
程序员文章站
2022-04-10 09:10:39
函数的执行空间会在函数执行完毕之后销毁但是,一旦函数内部返回了一个 引用数据类型,并且 在函数外部有变量接受 的情况下那么这个函数 执行空间 就不会销毁了function fn() { const obj = { name: 'Jack', age: 18, gender: '男' } return obj}const o = fn()闭包就是利用了这个函数执行空间不销毁的逻辑闭包概念1、有一个 A 函数,再 A 函数内部返回一个 B...
函数的执行空间会在函数执行完毕之后销毁
但是,一旦函数内部返回了一个 引用数据类型,并且 在函数外部有变量接受 的情况下
那么这个函数 执行空间 就不会销毁了
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、保护私有变量
优点: 可以把一些变量放在函数里面,不会污染全局
缺点: 要利用闭包函数才能访问,不是很方便
本文地址:https://blog.csdn.net/horizon12/article/details/109254405