首先,闭包是一个函数,在另一个函数内部(嵌套函数结构)。
其次,这个函数不仅能访问自己的作用域,更为关键的是它还能访问其父级函数的作用域。
换句话说,如果一个函数能访问其他函数作用域中的变量,那么这个函数就叫做“闭包”。
如何创建闭包?
只要在一个函数中再定义一个函数,这个内部函数就是一个闭包。、
作用:
让外部访问函数内部变量成为可能。(外部函数可以认为是闭包的叔叔,与父级函数同辈等其他调用了父级函数的函数)
可以避免使用全局变量,防止全局变量污染
缺点:
局部变量会常驻在内存中(每次调用时变量都在内存中,会造成空间资源的浪费)
会造成内存泄漏(有一块内存空间被长期占用,而不被释放)