深度剖析JavaScript闭包及其原理,有哪些优缺点?

JavaScript 闭包

JavaScript中的闭包(closure)是定义在函数内部的一种特殊作用域。它能够让函数访问其他函数中局部变量,即使当前函数不是以该变量为参数传递的,也可以保存其词法作用域并返回引用。

优点

  • 可以让你创建沙盒/封装的形式将代码封装在其中,避免子函数对其周围的部分加以破坏
  • 闭包也可以用来动态地创建“私有”变量,只有函数自身才可以访问,从侧面来看,也就是实现了数据的保护

缺点

  • 闭包一直保持着外部函数中的局部变量的引用,这样内存消耗就会变大
  • 太多使用闭包会降低代码的可读性,使得程序变得不容易理解
posted @ 2023-02-25 20:01  heart中的烦恼哟  阅读(23)  评论(0编辑  收藏  举报