Javascript: 闭包
Javascript 闭包
var add = (function () { var counter = 0; return function () {return counter += 1;} })();
add()
add()
add()
counter值为3
正常局部变量活得不长。它们在函数调用时创建,在函数完成后被删除。
使用全局变量又不安全, 到处都可能变更这个全局变量, 可以使用闭包既让变量私有化, 又使变量在函数执行完后不会被销毁删除.
缺点占用内存, 根据程序回收机制被回收.