Javascript:请解释以下代码

时间:2018-04-15 17:32:40

标签: javascript function closures

这是:

var add = (function () {
    var counter = 0;
    return function () {return counter += 1;}
})();
add();
add();
add();
// the counter is now 3

counter每当3设置为0add INSERT INTO tab_name VALUES (1, 'b', 'c'); 的可能性如何?

1 个答案:

答案 0 :(得分:1)

counter仅设置为零一次,同时在指令var add = ....

中定义新函数

在这条指令之后,add是函数function () {return counter += 1;}(如果你是新手,有点复杂,请参阅链接的潜在副本以获得一般解释)。

因此,当您之后调用add()时,只调用增加计数器的代码。

这个函数可以访问变量计数器(我们称之为闭包,或多或少,变量计数器没有全局定义,它没有在小counter += 1函数中定义,但它仍然“采用”小功能)