闭包面试回答

84 阅读1分钟
  1. 对闭包进行描述 有权访问另一个函数作用域的变量的函数

  2. 闭包有哪些使用场景

  • 一个函数返回函数内部的工具函数,外部通过工具函数间接访问函数局部变量的过程
  • 利用函数自调用,每次调用内部的局部变量或者形参都是独立的 来保存一些临时数据
  • 利用函数的独立作用域 来生成业务代码块 内部的变量相互不冲突污染全局变量
  • 回调函数(利用函数复用的功能,制作复用工具,参数返回值)
  • 闭包还有很多使用场景,可以根据自己的代码经历举例
  1. 说说你对闭包看法(优缺点)
  • 优点: (1)函数内部的变量 想要被外部程序使用 但是语法决定了外部不能使用,可以利用闭包解决

(2)一些临时数据 比如for循环的i的值 希望延时业务中使用 可以使用闭包把临时数据保存到局部作用域中

(3) 防止变量污染 可以用闭包把一些业务变量放在局部作用域中

  • 缺点:内存泄漏(如果有一个对象创建了 而且占用了内存却没有什么业务使用 这种情况就是内存泄漏) 解决方法:不用闭包或者在可能存在泄漏的地方把标识符引用为null