作用域闭包

65 阅读1分钟

什么是闭包

当函数可以记住并访问所在的词法作用域时,就产生了闭包,即使函数是在当前词法作用

域之外执行 如果将函数(函数可以访问各自的词法作用域)当第一级的值类型并到处传递,就能够看到闭包在这些函数中的应用。

自己的理解:将函数当成对象传递,可以在外部作用域访问到函数的的作用域。

特点

1、函数嵌套函数 2、根据词法作用域,内部函数可以访问外部函数作用域

作用

1、防止变量和参数被垃圾回收器回收(变量持久化) 2、防止变量和参数被外部污染(变量只可在闭包内部访问)

风险

滥用闭包有内存泄漏风险

闭包的作用

闭包会阻止引擎进行垃圾回收