用最简单的理解来说:闭包就是子函数可以使用父函数的局部变量,还有父函数的参数。闭包是一种函数才拥有的特性,每次创建函数时都会创建闭包,从别的语言层面来看对使用c++或者java这类面对象语言的程序员来说可认为是是调用私有属性的接口,因为js是没有私有变量的。闭包可以模拟私有变量,在函数执行时形成私有的作用域,从底层方面来讲就是形成一个不销毁的栈环境。综上所述闭包更简单的来说就是一个函数引用另一个函数的变量,因为变量被引用着所以不会被回收,因此可以用来封装一个私有变量