[英]Javascript closure, calling function different ways
我可以这样称呼这种关闭:
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()
您都会创建一个“新计数器”,因此第二个示例并不相同,您将创建两个不同的实例。
您必须先创建一个实例,然后使用该实例:
var inc = increment();
inc(); // 1
inc(); // 2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.