JavaScriptで関数を定義する3つの方法
1. function 命令で定義する
関数を直接定義する。
2. Functionコンストラクタ経由で定義する
「Functionコンストラクタでは、引数や関数本体を文字列として定義できる」というメリットがあるが、それ以外で特にFunctionコンストラクタ経由で定義するメリットはないので、あまり使わない。
3. 関数リテラル表現で定義する
名前のない関数を定義した上で、変数に格納する。
関数が登録されるタイミング
例1
1行目の時点で、まだrectangle関数は宣言されていないが、正しくrectangle関数が実行されて、アラートも表示される。
これはfunction命令
はコードをコンパイルするときに、関数を登録しているので、rectangle関数をどこからでも呼び出すことができるから。
例2
関数リテラル
、Functionコンストラクタ
は関数が代入された時に評価されるので、上のように書くとundefinedとなる。