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