闭包
闭包就是一个函数引用另一个函数的变量,因为变量被引用着所以不会被回收,因此可以用来封装一个私有变量。
这是优点也是缺点,不必要的闭包只会增加内存消耗。
或者说闭包就是子函数可以使用父函数的局部变量,还有父函数的参数。
var add = (function () { var counter = 0; return function (){return counter += 1;} })();
add(); add(); add(); // 结果为 3
闭包是可访问上一层函数作用域里变量的函数,即便上一层函数已经关闭。