無名関数
JavaScriptの無名関数は関数に名前を付けず、関数そのものを変数に代入して使うパターンがある。
var mumeiFunc = function(a,b) { // 関数に名前を付けない。関数を変数に代入
return a * b; // ここに関数の処理を記述
};
document.write(mumeiFunc(3,4)); // 計算結果を表示
確かに関数そのものには名前をつけていない。けれど変数に代入するところで変数名が必要になるよね。
使い勝手としては、ちょっとした短い処理を変数に代入して使えるのは便利な事もあるかも。
変数のスコープ範囲ならば何度でも使える。
アロー関数
先程の無名関数の派生として矢印を使ったアロー関数というものもある
var arrowFunc = (a, b) => { // 関数に名前を付けない。関数を変数に代入(無名関数と同じ)
return a * b; // ここに関数の処理を記述
};
document.write(arrowFunc(3,4)); // 計算結果を表示
関数にも関わらず「function」というキーワードがない。かなり省略形の書き方。 初めて見たときは、意味わからなかったけれど、こんな関数の書き方があるのねぇ~
即時関数
即時関数はその場限りの1回しか利用しない処理を定義してサクッと実行
var result = (function(a,b) {
return a + b; // ここに処理を記述
}(2,3));
document.write(result); // 計算結果を表示
使い方
・引数は関数の処理を記述した後の}の次に記述
・関数と引数全体を( )で括る
即時関数も、初めて見たときは「???」でした 笑
アロー関数同様に、こんな書き方もあるという事を理解してしまえば何ということもないですね^^
JavaScriptは関数そのものを変数として扱うパターンが特徴的。初めて見たときはビックリする事が多かったけれど、一度整理してしまえば怖くないw