teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

関数宣言のコード修正

2016/01/05 08:28

投稿

think49
think49

スコア18194

answer CHANGED
@@ -2,14 +2,24 @@
2
2
  使い分けの基準は特にないので性質を知った上で使い分けて下さい。
3
3
 
4
4
  ```JavaScript
5
- hoge();
6
- foo(); // TypeError: foo is not a function(
5
+ hoge(); // function hoge () {}
6
+ var hoge2 = hoge;
7
+ hoge = null;
8
+ hoge2(); // null
7
9
 
10
+ foo(); // TypeError: foo is not a function
11
+
8
12
  var foo = function piyo () { // 変数宣言時に実体化される
9
- console.log(piyo); // 関数式の名前は不変であり、後から改変不可能
13
+ console.log(piyo); // 名前付き関数式の関数による名空間は不変であり、後から改変されるリスクはない
10
14
  };
11
15
 
12
- function hoge () {} // 関数orグローバルコードの先頭で実体化される
16
+ function hoge () { // 関数orグローバルコードの先頭で実体化される
17
+ console.log(hoge);
18
+ }
13
19
  ```
14
20
 
21
+ 名前付き関数式は `Function#name` にも影響します。
22
+
23
+ - [Function.name - JavaScript | MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name)
24
+
15
25
  Re: hidegital さん