什么是闭包?
一个函数引用了另一个函数作用域中的变量就是闭包。通常的实现方式如下:
function closure () {let a = 1;return function(num){a = num;return a;}}const changeNum = closure()changeNum();
闭包的作用
闭包的问题
闭包会保留它们包含函数的作用域,会比其他函数更占内存。过度使用可能导致内存过度占用。
V8等优化的js引擎会努力回收被闭包困住的内存,不过还是需要谨慎使用。
