【发布时间】:2017-09-09 16:51:35
【问题描述】:
我正在尝试理解闭包。您将如何解释这两种情况的行为。
场景 1
<input type="button" value="Click me" onclick="alert(handle())"/>
<script>
var handle = (function(){
var count = 0;
return function(){
return ++count ;
}
})();
</script>
场景 2
<input type="button" value="Click me" onclick="alert(handle()())"/>
<script>
var handle = function(){
var count = 0;
return function(){
return ++count ;
}
};
</script>
两种情况不一样吗?为什么在第一种情况下仅调用一次外部函数,并且在第一次单击后,每次单击都会调用内部函数。
【问题讨论】:
标签: javascript closures anonymous-function