理解闭包可以将以上代码分解如下:
function outerFunction() { var counter = 0; function innerFunction(){ return counter += 1; } return innerFunction; /* 注意 typeof innerFunction 是:function;而typeof innerFunction()是number; */ } var add = outerFunction(); /* 调用 outerFunction()返回的是内部函数innerFucntion,那么调用几次add()将调用几次 内部函数innerFunction,内部函数公用了counter,所以能够计数,所以说闭包就是将内部嵌套函数变成外部可调用的。 */ add(); add(); add();