今天面试碰到这样一个问题:javascript的闭包该如何消除
这里有几个问题,个人感觉闭包返回的变量不被引用就会自动消除了,但是在网上搜了些许文章看的有点迷惑,说闭包会造成常驻内存,会造成内存泄露云云,望大家解惑
今天面试碰到这样一个问题:javascript的闭包该如何消除
这里有几个问题,个人感觉闭包返回的变量不被引用就会自动消除了,但是在网上搜了些许文章看的有点迷惑,说闭包会造成常驻内存,会造成内存泄露云云,望大家解惑
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
4 回答2.4k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
闭包的含义是函数在调用时能够访问函数在定义时可以访问的作用域,例如在定义函数a的时候,a能够访问变量b。每一个函数都有自己对应的闭包,当函数没有被垃圾回收机制回收时函数对应的闭包也会常驻内存。如果需要清除闭包就要回收不需要的函数,根据JavaScript回收机制,当一个内存空间没有变量指向的时候就会被回收。那么闭包清除的方式就是将不需要的函数名赋值为null。