回答編集履歴

2

「function文」への指摘に対応

2016/04/26 23:31

投稿

unau
unau

スコア2468

test CHANGED
@@ -67,3 +67,15 @@
67
67
 
68
68
 
69
69
  誤解されているかもしれないので念のため付け加えておきますが、ご質問に書かれていた「カッコあり」の方も、**change() に渡しているものは**関数呼び出しではありません。関数の定義です。関数の呼び出しは通常、関数オブジェクトの後ろに `()` をつけて呼び出すものです。(**showValues() は関数の呼び出し**)
70
+
71
+
72
+
73
+ ---
74
+
75
+ 2016-04-27 追記
76
+
77
+ 「function 文」という用語は正しくなく、「関数宣言」とすべき、とのご指摘をいただきました。
78
+
79
+ 「function 式」の方もあわせて「関数式」と置き換えるとよさそうです。
80
+
81
+ 詳しくは、[関数と変数の巻き上げの違いとは - teratail](https://teratail.com/questions/33002) に対する私の回答への [think49](https://teratail.com/users/think49) さんのコメントをご覧ください。

1

追記

2016/04/26 23:31

投稿

unau
unau

スコア2468

test CHANGED
@@ -28,7 +28,7 @@
28
28
 
29
29
  ```
30
30
 
31
- のように、リテラルあるいは変数で実引数を渡せますが、関数を引数にとるような関数でも同じようなことができます。
31
+ のように、「整数リテラルあるいは変数に入った整数」で実引数を渡せますが、関数を引数にとるような関数でも同じようなことができます。
32
32
 
33
33
  ```javascript
34
34
 
@@ -52,7 +52,7 @@
52
52
 
53
53
  ```
54
54
 
55
- というように関数リテラルあるいは変数に入った関数を、実引数として関数 (`execTwice`) に渡せます。
55
+ というように関数リテラルあるいは変数に入った関数を、実引数として関数 (`execTwice`) に渡せます。
56
56
 
57
57
  また、関数の場合は、先の `add2()` のように**function文**で定義した関数を名前で渡すことができます (`sub2` の方は**function式** で定義)。
58
58
 
@@ -62,8 +62,8 @@
62
62
 
63
63
  ```
64
64
 
65
- ご質問に戻りますと、`change()` に渡している `showValues` は、functionで生成された関数オブジェクトが代入された変数かfunction 式で定義された関数名かのいずれかです。
65
+ ご質問に戻りますと、`change()` に渡している `showValues` は、functionで生成された関数オブジェクトが代入された変数function 式で定義された関数名かのいずれかです。
66
66
 
67
67
 
68
68
 
69
- 誤解されているかもしれないので念のため付け加えておきますが、ご質問に書かれていた「カッコあり」の方も、関数呼び出しではありません。関数の定義です。関数の呼び出しは通常、関数オブジェクトの後ろに `()` をつけて呼び出すものです。
69
+ 誤解されているかもしれないので念のため付け加えておきますが、ご質問に書かれていた「カッコあり」の方も、**change() に渡しているものは**関数呼び出しではありません。関数の定義です。関数の呼び出しは通常、関数オブジェクトの後ろに `()` をつけて呼び出すものです。(**showValues() は関数の呼び出し**)