回答編集履歴
2
ちょっと訂正
answer
CHANGED
@@ -4,8 +4,8 @@
|
|
4
4
|
|
5
5
|
function setUp(){} が実行されて、
|
6
6
|
|
7
|
-
var count = 0; で、カウンタが初期化されますが、var宣言した変数のスコープは
|
7
|
+
var count = 0; で、カウンタが初期化されますが、function内でvar宣言した変数のスコープはfunctionレベルでずっと保持されます。
|
8
8
|
|
9
9
|
そして return で function(){ return (count += 1); } が返され、これが next に代入されます。
|
10
10
|
|
11
|
-
以下、next(); を実行すると function(){ return (count += 1); } が実行され、
|
11
|
+
以下、next(); を実行すると function(){ return (count += 1); } が実行され、functionとしてのスコープの count について、参照と加算がされます。
|
1
補足
answer
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
function setUp(){} が実行されて、
|
6
6
|
|
7
|
-
var count = 0; で、カウンタが初期化されますが、varのスコープはグローバルなのでずっと保持されます。
|
7
|
+
var count = 0; で、カウンタが初期化されますが、var宣言した変数のスコープはグローバルなのでずっと保持されます。
|
8
8
|
|
9
9
|
そして return で function(){ return (count += 1); } が返され、これが next に代入されます。
|
10
10
|
|