回答編集履歴

1

説明の順序などを微調整

2018/04/13 18:15

投稿

iwamoto_takaaki
iwamoto_takaaki

スコア2883

test CHANGED
@@ -1,3 +1,5 @@
1
+ まず、この結果が1,2,3と表示されるのは理解できると思います。
2
+
1
3
  ```javascript
2
4
 
3
5
  var x = 1;
@@ -12,11 +14,15 @@
12
14
 
13
15
  ```
14
16
 
17
+
18
+
15
- 結果が1,2,3と表示されるのは理解できると思います。
19
+ 次に、ループ中身を関数にします。
16
20
 
17
21
 
18
22
 
19
- ループの中身を関数ます。
23
+ カウントアップの部分が戻り値なります。
24
+
25
+ 通常の関数はxの値を保持することができませんので、毎回引数にいれて更新する必要があります。
20
26
 
21
27
 
22
28
 
@@ -44,11 +50,9 @@
44
50
 
45
51
 
46
52
 
47
- カウントアップの部分が戻り値になります。
53
+ さらに、クロージャを使って関数の変数を関数内から利用し、更新します。
48
54
 
49
-
50
-
51
- 通常の関数はx値を保持ることができませんので、毎回引数にいれ更新す必要がありま
55
+ 変数は関数の外部にありますので、呼び出しよっ初期値にもどことはありません(と理解してください。)
52
56
 
53
57
 
54
58
 
@@ -76,13 +80,11 @@
76
80
 
77
81
 
78
82
 
79
- さらに、クロージャを使って関数の外部の変数を関数内から利用し、更新します。
83
+ 最後に、変数x隠すためにfunctionで括ります。
80
-
81
- 変数は関数の外部にありますので、関数呼び出しによって初期値にもどることはありません。(と理解してください。)
82
84
 
83
85
 
84
86
 
85
- 変数xをfunctionで囲って隠したものが質問に合ったコードになります。
87
+ 質問コードとほぼ同じになります。
86
88
 
87
89
 
88
90