我希望你能帮助我理解JavaScript闭包的工作方式。请看以下两个函数,并告诉我它们之间的不同之处,因为它们在多次调用时产生完全不同的结果:
函数1
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 2
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
add()
时,counter
的值都会被设置为0
。 - Rayonfunction plus() {}
? - Felix Klingreturn plus();
... - Rayon