function add () { var c = 0; return function () {return c += 1;} }; var num= add(); //function () {return c += 1;} num(); //1 num(); //2 num(); //3
闭包是可访问上一层函数作用域里变量的函数,即便上一层函数已经关闭。
var add = (function () { var counter = 0; return function () {return counter += 1;} })(); add(); //1
add(); //2
add(); //3
add先自调一次