这里是一段代码,点击该按钮时,一个让数增量:自调用函数闭inJavaScript
<script type="text/javascript">
var incrementClickCount = (function() {
var clickCount = 0;
return function() {
return ++clickCount;
}
})();
</script>
<input type="button" value="click me" onclick="alert(incrementClickCount());" />
我不知道那是什么,我认为我们应该得到的值“1”每次当我们点击按钮,这样的序列将是
步骤1:通过自自我调用的外部函数调用,内匿名函数的定义存储在增量incrementClickCount
变量。
第2步:当单击该按钮,调用内部匿名函数从0更改的clickCount
值设置为1,这样我们就得到1作为输入,很公平。
第3步:这里是我不明白的棘手的部分,当我们再次单击按钮时。我们实际上调用了一个新的内部匿名函数,所以输入应该是1,为什么它现在是2?就这样正常的Java或C#功能:
public int getNumber()
{
int clickCount = 0;
return addNumber(clickCount);
}
public int addNumber(int number)
{
return number++;
}
不管有多少次我打电话getNumber()
功能,我总是得到1而不是1,2,3,4,5 ....
每次函数被调用你的clickCount值重置为0,这就是为什么它总是显示1. – mnemosdev