トップページ > コンテンツ > プログラミング入門 > Ajax入門 > JavaScript入門 > Javascript基本 > 関数の宣言方法

Javascriptでは関数の書き方がいくつかある。

1.レガシーな方法
function 関数名(引数){処理;}と普通な感じ。
コンパイル時に評価される。

2.無名関数にする
var 関数名 = function(){}という形の場合は右側が無名関数。

別の関数内で以下のように使い捨てで使われるケースもある。
setTimeout(function(){},0);

1の関数宣言と異なり、
関数リテラルの所までプログラムが上から順に評価されるまで、
関数オブジェクトが生成されないことに注意。

つまりは、以下のように関数呼び出しが先の順序になった場合、
1では動いても2ではうまく動かない。
a();
var a = function(){};

無名関数を即時実行するには、(function())();のようにすると良い。
ちなみに引数を渡す場合は(function(hoge){})(foo);
※fooという引数をhogeに入れる。

3.関数を定義する
a = new Function()として定義する

4.オブジェクトリテラルでラベルをつける
var test = {
  a: "hoge", //<-プロパティ
  b: function(){}, //<-メソッド(≒関数)
  c: function(){}  //<-メソッド(≒関数)
};
または
var test = {
  a: "hoge", //<-プロパティ
  b(){}, //<-メソッド(≒関数)
  c(){}  //<-メソッド(≒関数)
};
みたいな感じ。

5.アロー関数を定義する
let a=(引数)=>{処理;}

省略記法が色々ある。
let a = 引数1個 => 処理; //引数1個だと()不要。処理1行なら{}不要。

最終更新:2020年10月10日 18:36