我很难辨别 JavaScript 闭包是如何工作的。请看一下这两个函数,并说明它们在多次调用时产生完全不同的结果的不同之处:
功能一
var add = (function() {
var counter = 0;
return function() {
return counter += 1;
}
})();
console.log(add()); // result is 1
console.log(add()); // result is 2
console.log(add()); // result is 3
功能二
function add() {
var counter = 0;
function() {
return counter += 1;
}
plus();
}
console.log(add()); // result is 1
console.log(add()); // result is 1
console.log(add()); // result is 1