示例代码:
var add = (function () {
var counter = 0;
return function () {return counter += 1;}
})();
add();
add();
add();
// 计数器为 3
关键点:上层函数已关闭,这样上层函数不会再被调用修改其中的变量值。但是通过闭包函数,可以继续修改变量上层函数的变量值,这样可以保证有且仅会被该闭包函数修改。
作用:它使得函数拥有私有变量变成可能;变量受匿名函数的作用域保护,只能通过 闭包方法修改。