javascript的闭包该如何消除

今天面试碰到这样一个问题:javascript的闭包该如何消除
这里有几个问题,个人感觉闭包返回的变量不被引用就会自动消除了,但是在网上搜了些许文章看的有点迷惑,说闭包会造成常驻内存,会造成内存泄露云云,望大家解惑

阅读 12.7k
3 个回答

闭包的含义是函数在调用时能够访问函数在定义时可以访问的作用域,例如在定义函数a的时候,a能够访问变量b。每一个函数都有自己对应的闭包,当函数没有被垃圾回收机制回收时函数对应的闭包也会常驻内存。如果需要清除闭包就要回收不需要的函数,根据JavaScript回收机制,当一个内存空间没有变量指向的时候就会被回收。那么闭包清除的方式就是将不需要的函数名赋值为null。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题