我可以这样称呼这种关闭:
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
最佳答案
每当调用increment()
时,都会创建一个“新计数器”,因此第二个示例并不相同,您将创建2个不同的实例。
您必须先创建一个实例,然后使用该实例:
var inc = increment();
inc(); // 1
inc(); // 2
关于javascript - Javascript关闭,以不同方式调用函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20254394/