質問編集履歴
4
誤字を訂正
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
JavaScriptの解説サイト: [クロージャーがなぜ動くのか](https://jsprimer.net/basic/function-scope/) のクロージャの説明部分で以下のコードがあるのですが、コメントの「`increment`関数は外のスコープの変数`count`を参照している」で、なぜ"関数"が"変数"を参照できるという仕組みがあるのか分からないです。関数が変数を参照するということなど今まで見たことがないのですが、、、変数が値を参照すという仕組みがあることなら知っていますが、、、
|
5
|
+
JavaScriptの解説サイト: [クロージャーがなぜ動くのか](https://jsprimer.net/basic/function-scope/) のクロージャの説明部分で以下のコードがあるのですが、コメントの「`increment`関数は外のスコープの変数`count`を参照している」で、なぜ"関数"が"変数"を参照できるという仕組みがあるのか分からないです。関数が変数を参照するということなど今まで見たことがないのですが、、、変数が値を参照するという仕組みがあることなら知っていますが、、、
|
6
6
|
|
7
7
|
```JavaScript
|
8
8
|
|
3
質問文を修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,19 +2,7 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
JavaScriptの解説サイト: [クロージャーがなぜ動くのか](https://jsprimer.net/basic/function-scope/) のクロージャの説明部分で以下のコードがあるのですが、コメントの「`increment`関数は外のスコープの変数`count`を参照している」で、なぜ"関数"が"変数"を参照
|
6
|
-
|
7
|
-
また、同サイトで以下の解説が書かれていましたが、この2番目にも上と同じようなことが書かれています。
|
8
|
-
|
9
|
-
> つまり次のような参照の関係がmyCounter変数とcount変数の間にはあることがわかります。
|
10
|
-
|
11
|
-
・myCounter変数はcreateCounter関数の返り値であるincrement関数を参照している
|
12
|
-
|
13
|
-
・myCounter変数はincrement関数を経由してcount変数を参照している
|
14
|
-
|
15
|
-
・myCounter変数を実行した後もcount変数を参照している
|
16
|
-
|
17
|
-
|
5
|
+
JavaScriptの解説サイト: [クロージャーがなぜ動くのか](https://jsprimer.net/basic/function-scope/) のクロージャの説明部分で以下のコードがあるのですが、コメントの「`increment`関数は外のスコープの変数`count`を参照している」で、なぜ"関数"が"変数"を参照できるという仕組みがあるのか分からないです。関数が変数を参照するということなど今まで見たことがないのですが、、、変数が値を参照すという仕組みがあることなら知っていますが、、、
|
18
6
|
|
19
7
|
```JavaScript
|
20
8
|
|
2
リンクしている文字列を適切なものに訂正
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
JavaScriptの解説サイト: [
|
5
|
+
JavaScriptの解説サイト: [クロージャーがなぜ動くのか](https://jsprimer.net/basic/function-scope/) のクロージャの説明部分で以下のコードがあるのですが、コメントの「`increment`関数は外のスコープの変数`count`を参照している」で、なぜ"関数"が"変数"を参照するのかが分からないです。
|
6
6
|
|
7
7
|
また、同サイトで以下の解説が書かれていましたが、この2番目にも上と同じようなことが書かれています。
|
8
8
|
|
1
コードの続きを追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -36,6 +36,16 @@
|
|
36
36
|
|
37
37
|
};
|
38
38
|
|
39
|
+
// createCounter()の実行結果は、内側で定義されていた`increment`関数
|
40
|
+
|
41
|
+
const myCounter = createCounter();
|
42
|
+
|
43
|
+
// myCounter関数の実行結果は`count`の評価結果
|
44
|
+
|
45
|
+
console.log(myCounter()); // => 1
|
46
|
+
|
47
|
+
console.log(myCounter()); // => 2
|
48
|
+
|
39
49
|
```
|
40
50
|
|
41
51
|
|