js的闭包以及存储

闭包的意思

闭包就是能够读取其他函数内部变量的函数。例如在javascript中,只有函数内部的子函数才能读取局部变量,所以闭包可以理解成“定义在一个函数内部的函数“。在本质上,闭包是将函数内部和函数外部连接起来的桥梁

什么是闭包
)简单讲,闭包就是指有权访问另一个函数作用域中的变量的函数。
MDN 上面这么说:闭包是一种特殊的对象。
它由两部分构成:函数,以及创建该函数的环境。
环境由闭包创建时在作用域中的任何局部变量组成
。这种官方的概念是比较难理解的,在面试的时候说出来也不是很专业,因
为没办法有个具体的逻辑。我个人认为,理解闭包的关键在于
:外部函数调用之后其变量对象本应该被销毁,但闭包的存在使我们仍然可以访
问外部函数的变量对象,这就是闭包的重要概念。

function fun() {
            var a = 'aaa'
            
            return function () {
                var c = 'ccc'
                console.log(c)
                console.log(a)
            }
        }
        (function () {
            var a = 'aaa'

            return function () {
                var cc = 'cc'
                console.log(aa)
            }
        }())

存储
分为栈和堆
只要声明一个变量就会在栈中占一个内存
引用数据类型:数据类型会存储到堆中,同事提供一个地址
变量的存储
分为深拷贝与浅拷贝
深拷贝:拷贝的时候数据
js中基本数据类型,都是深拷贝,因为基本数据类型都存在【栈中】
浅拷贝:拷贝的是指针
引用类型数据都是浅拷贝 因为引用类型数据都存在【堆中】

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值