什么是闭包?闭包的优缺点?闭包的作用?

93 阅读2分钟

什么是闭包?

简单来说就是指有权访问另外一个韩式作用域中的函数(本质上就是函数嵌套函数)

闭包的作用

函数内部定义的变量属于局部变量,当局部变量所在的函数被调用的时候,就开始执行,执行一旦结束,局部变量就是被释放,当我们需要函数内部变量时,他已经被释放了,读取不到了,这个时候我们就可以使用闭包,延长局部变量的实行时间,当函数执行完毕以后,局部变量不可以被内存释放,然后让外部可以访问到这个变量

闭包的用途

闭包可以用在许多地方。它的最大用处有两个,一个是可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。

闭包的优点

可以重复使用变量,并且不会造成变量污染

全局变量可以重复使用,但是容易造成变量污染。局部变量仅在局部作用域内有效,不可以重复使用,不会造成变量污染。

闭包的缺点

1.闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,可能会导致内存泄露

解决这个问题的办法就是在不使用这些变量时,及时把不需要的局部变量全部删除

2.闭包会在父函数外部,改变父函数内部变量的值。

如果你把父函数当作对象使用,把闭包当作它的公用方法(Public),把内部变量当作它的私有属性(private)时,要小心不要随便改变父函数内部变量的值。