回答編集履歴
8
まとめ「引数に」削除
test
CHANGED
@@ -63,7 +63,7 @@
|
|
63
63
|
```
|
64
64
|
|
65
65
|
### 判断方法まとめ
|
66
|
-
以上をもちまして、今後`myFunc()`と書くべきか`myFunc`のどちらなのかと迷った際は、
|
66
|
+
以上をもちまして、今後`myFunc()`と書くべきか`myFunc`のどちらなのかと迷った際はその関数やメソッドなどが、
|
67
|
-
-
|
67
|
+
- **関数を求めているのか**
|
68
68
|
- **値を求めているのか**
|
69
69
|
で判断したらいいと思います。つまり、覚えるしかない!
|
7
関数の中で関数を実行の説明追加
test
CHANGED
@@ -48,14 +48,18 @@
|
|
48
48
|
`greet()`と書いちゃうと、実行結果の値そのものが`setInterval()`の第一引数に入ってしまうことになるので、きちんと動作しなくなります。
|
49
49
|
setIntervalからしたら **「いやぁ、値だけもらっても何したらいいかわかんねーよ」** って感じですよね。
|
50
50
|
|
51
|
-
そしてさらにsetIntervalからしたら、ちゃんと処理内容を指示してくれるなら関数名であろうがコード直書き(`() => {...}`)
|
51
|
+
そしてさらにsetIntervalからしたら、ちゃんと処理内容を指示してくれるなら関数名であろうがコード直書き(`() => {...}`)であろうが、どちらでもいいわけです。
|
52
|
+
そしてここは基本の内容ですが、関数の中で関数を実行する時は`myFunc();`と書きますよね。
|
53
|
+
ですので、まぁこうなるわけです↓
|
52
54
|
|
53
55
|
```javascript
|
54
56
|
setInterval(関数名, 数値);
|
55
57
|
// 例 setInterval(greet, 1000);
|
56
58
|
|
57
59
|
setInterval(コードそのもの, 数値);
|
58
|
-
// 例 setInterval(() => {
|
60
|
+
// 例 setInterval(() => {
|
61
|
+
// greet();
|
62
|
+
// }, 1000);
|
59
63
|
```
|
60
64
|
|
61
65
|
### 判断方法まとめ
|
6
setIntervalのお気持ち追記
test
CHANGED
@@ -42,11 +42,13 @@
|
|
42
42
|
|
43
43
|
### setInterval()が引数に求めるものは?
|
44
44
|
以上を踏まえて`setInterval()`について振り返ってみます。
|
45
|
-
第一引数に求められているのは、**関数**
|
45
|
+
第一引数に求められているのは、**関数** (これをコールバック関数といいます)でしたね。
|
46
46
|
|
47
47
|
上記で、変数に関数を代入したときの挙動の違いをみました通り、関数が返されるのは`greet`の書き方でしたね。
|
48
48
|
`greet()`と書いちゃうと、実行結果の値そのものが`setInterval()`の第一引数に入ってしまうことになるので、きちんと動作しなくなります。
|
49
49
|
setIntervalからしたら **「いやぁ、値だけもらっても何したらいいかわかんねーよ」** って感じですよね。
|
50
|
+
|
51
|
+
そしてさらにsetIntervalからしたら、ちゃんと処理内容を指示してくれるなら関数名であろうがコード直書き(`() => {...}`)だろうが、どちらでもいいわけです。
|
50
52
|
|
51
53
|
```javascript
|
52
54
|
setInterval(関数名, 数値);
|
@@ -58,6 +60,6 @@
|
|
58
60
|
|
59
61
|
### 判断方法まとめ
|
60
62
|
以上をもちまして、今後`myFunc()`と書くべきか`myFunc`のどちらなのかと迷った際は、
|
61
|
-
- そのメソッドが、**引数に関数を求めているのか**
|
63
|
+
- その関数やメソッドが、**引数に関数を求めているのか**
|
62
64
|
- **値を求めているのか**
|
63
65
|
で判断したらいいと思います。つまり、覚えるしかない!
|
5
導入とまとめの修正
test
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
### 結論
|
2
2
|
先に結論から言うと、`setInterval()`の第一引数には、
|
3
|
-
- **関数**
|
3
|
+
- **関数**
|
4
|
-
- **コードそのもの**
|
5
|
-
しか入れられないからです。以下で詳しく解説します。
|
4
|
+
しか入れられないからです。何を当たり前のことを!と思われるかもしれませんが、以下で詳しく解説します。
|
6
5
|
|
7
6
|
### myFunc() と myFuncの違い
|
8
7
|
以下のような関数があったとします。
|
@@ -38,6 +37,9 @@
|
|
38
37
|
|`greet()`|実行して戻された値|`'Hello World!'`|
|
39
38
|
|`greet`|関数そのもの|`function greet() { ... }`|
|
40
39
|
|
40
|
+
よく考えると当たり前のことなんですよね。だって`myFunc()`って、**「関数を実行せよ!」** っていう命令文じゃないですか。
|
41
|
+
そりゃあ、書かれた時点で即実行して値返しちゃいますよ。
|
42
|
+
|
41
43
|
### setInterval()が引数に求めるものは?
|
42
44
|
以上を踏まえて`setInterval()`について振り返ってみます。
|
43
45
|
第一引数に求められているのは、**関数** または、**コードそのもの(直書き)**(これらをコールバック関数といいます)です。
|
@@ -54,6 +56,7 @@
|
|
54
56
|
// 例 setInterval(() => { ... }, 1000);
|
55
57
|
```
|
56
58
|
|
59
|
+
### 判断方法まとめ
|
57
60
|
以上をもちまして、今後`myFunc()`と書くべきか`myFunc`のどちらなのかと迷った際は、
|
58
61
|
- そのメソッドが、**引数に関数を求めているのか**
|
59
62
|
- **値を求めているのか**
|
4
コールバック関数の説明を修正
test
CHANGED
@@ -24,7 +24,7 @@
|
|
24
24
|
そうするとそれぞれ以下のような結果が返ってきます。
|
25
25
|
|
26
26
|
```javascript
|
27
|
-
// greet()を格納した変数結果
|
27
|
+
// greet()を格納した変数の結果
|
28
28
|
"Hello World!"
|
29
29
|
|
30
30
|
// greetを格納した変数の結果
|
@@ -40,14 +40,14 @@
|
|
40
40
|
|
41
41
|
### setInterval()が引数に求めるものは?
|
42
42
|
以上を踏まえて`setInterval()`について振り返ってみます。
|
43
|
-
第一引数に求められているのは、**関数**(これをコールバック関数といいます)
|
43
|
+
第一引数に求められているのは、**関数** または、**コードそのもの(直書き)**(これらをコールバック関数といいます)です。
|
44
44
|
|
45
45
|
上記で、変数に関数を代入したときの挙動の違いをみました通り、関数が返されるのは`greet`の書き方でしたね。
|
46
46
|
`greet()`と書いちゃうと、実行結果の値そのものが`setInterval()`の第一引数に入ってしまうことになるので、きちんと動作しなくなります。
|
47
47
|
setIntervalからしたら **「いやぁ、値だけもらっても何したらいいかわかんねーよ」** って感じですよね。
|
48
48
|
|
49
49
|
```javascript
|
50
|
-
setInterval(
|
50
|
+
setInterval(関数名, 数値);
|
51
51
|
// 例 setInterval(greet, 1000);
|
52
52
|
|
53
53
|
setInterval(コードそのもの, 数値);
|
@@ -55,6 +55,6 @@
|
|
55
55
|
```
|
56
56
|
|
57
57
|
以上をもちまして、今後`myFunc()`と書くべきか`myFunc`のどちらなのかと迷った際は、
|
58
|
-
-
|
58
|
+
- そのメソッドが、**引数に関数を求めているのか**
|
59
59
|
- **値を求めているのか**
|
60
60
|
で判断したらいいと思います。つまり、覚えるしかない!
|
3
setIntervalの気持ちを代弁
test
CHANGED
@@ -44,6 +44,7 @@
|
|
44
44
|
|
45
45
|
上記で、変数に関数を代入したときの挙動の違いをみました通り、関数が返されるのは`greet`の書き方でしたね。
|
46
46
|
`greet()`と書いちゃうと、実行結果の値そのものが`setInterval()`の第一引数に入ってしまうことになるので、きちんと動作しなくなります。
|
47
|
+
setIntervalからしたら **「いやぁ、値だけもらっても何したらいいかわかんねーよ」** って感じですよね。
|
47
48
|
|
48
49
|
```javascript
|
49
50
|
setInterval(コールバック「関数」, 数値);
|
2
表に追加
test
CHANGED
@@ -33,10 +33,10 @@
|
|
33
33
|
}
|
34
34
|
```
|
35
35
|
つまり、**どこかに格納されて呼び出されたときの関数が返すもの**は
|
36
|
-
|代入した関数|戻り値|
|
36
|
+
|代入した関数|戻り値|例|
|
37
|
-
|:--|:--|
|
37
|
+
|:--|:--|:--|
|
38
|
-
|`greet()`|実行して戻された値|
|
38
|
+
|`greet()`|実行して戻された値|`'Hello World!'`|
|
39
|
-
|`greet`|関数そのもの|
|
39
|
+
|`greet`|関数そのもの|`function greet() { ... }`|
|
40
40
|
|
41
41
|
### setInterval()が引数に求めるものは?
|
42
42
|
以上を踏まえて`setInterval()`について振り返ってみます。
|
@@ -50,7 +50,7 @@
|
|
50
50
|
// 例 setInterval(greet, 1000);
|
51
51
|
|
52
52
|
setInterval(コードそのもの, 数値);
|
53
|
-
// 例 setInterval(() => {...}, 1000);
|
53
|
+
// 例 setInterval(() => { ... }, 1000);
|
54
54
|
```
|
55
55
|
|
56
56
|
以上をもちまして、今後`myFunc()`と書くべきか`myFunc`のどちらなのかと迷った際は、
|
1
まとめの追加
test
CHANGED
@@ -53,3 +53,7 @@
|
|
53
53
|
// 例 setInterval(() => {...}, 1000);
|
54
54
|
```
|
55
55
|
|
56
|
+
以上をもちまして、今後`myFunc()`と書くべきか`myFunc`のどちらなのかと迷った際は、
|
57
|
+
- **そのメソッドが引数に関数を求めているのか**
|
58
|
+
- **値を求めているのか**
|
59
|
+
で判断したらいいと思います。つまり、覚えるしかない!
|