js闭包

前提是你 提交于 2019-12-19 06:30:30

1、什么是js闭包?

  闭包的英文单词是closure,是指有权访问另一个函数作用域中变量的函数。

  在本质上,闭包就是将函数内部和函数外部链接起来的一座桥梁。内层的函数可以使用外层函数的所有变量,即使外层函数已经执行完毕。

  这是JavaScript中非常重要的一部分知识,因为使用闭包可以大大减少代码量,是代码看上去更加清晰等,功能十分强大。

2、闭包的优缺点?

  优点:可以把局部变量驻留在内存中,可以避免使用全局变量。

  缺点:也有占用更多内存的缺点,用完要及时让垃圾回收器回收,否则会占用更多内存。

  闭包两种访问方式会有不同的结果,()()双括号访问方式会出错,先复制后的但括号方式是对的。

3、闭包相关知识点

  常见的方式是在函数创建另一个函数

  闭包的第一个用途:通过闭包可以访问局部变量

  闭包的第二个用途:可以让局部变量的值始终保持在内存中

    优点:可以把局部变量驻留在内存中,可以避免使用全局变量;全局变量在复杂程序中会造成许多麻烦(比如命名冲突、垃圾回收等),所以推荐使用私有的,封装的局部变量,而闭包可以实现这一点。

    缺点:由于闭包里作用域返回的局部变量资源不会被立刻销毁回收,所以可能占用更多的内存,所以过度使用闭包会导致性能下降

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!