文章标题

JS作用域链描述为一个对象列表,不是绑定的栈。
1每次调用JS函数的时候,都会为之创建一个新的对象用来保存局部变量,把这个对象添加到作用域链中,当函数返回时,就从作用域链中将这个绑定变量的对象删除。
2如果不存在嵌套的函数,也没有其他引用指向这个 绑定的对象,他会被当作垃圾回收掉。
3如果定义了嵌套函数,每个嵌套函数都各自对应一个作用域链,并且这个作用域链指向一个变量绑定的对象。
4如果这些嵌套函数对象对应在外部函数中保存下来,那么他们也会和所指向的变量绑定对象一样当作垃圾回收。
5但如果这个函数定义嵌套函数,并且将它作为返回值返回或者存储在某处的属性里,这时就会有一个外部引用指向这个嵌套函数,它就不会当作垃圾处理了,并且他绑定对象也不会被当做垃圾回收(如果使用不慎,闭包很容易造成循环引用,当dom对象与JS对象之间出现循环引用需要格外小心,在某些浏览器会造成内存泄漏~~)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值