我可以这样调用这个闭包:
var increment = (function () {
var test = 0;
return function () {
test++;
console.log(test);
}
})();
increment(); //1
increment(); //2
但是如何使用常规函数语法调用它?
function increment() {
var test = 0;
return function () {
test++;
console.log(test);
}
}
increment()(); 1
increment()(); 1
答案 0 :(得分:5)
每当你致电increment()
时,你都会创建一个“新计数器”,所以第二个例子不一样,你创建了两个不同的实例。
您必须先创建一个实例,然后使用它:
var inc = increment();
inc(); // 1
inc(); // 2
答案 1 :(得分:0)