アロー関数
JavaScript
function 式とほぼ同等の構文
ぱっと見には単なる糖衣構文に見える。
f = (param1, param2, ...) => { expression1; expression2; ...; };
f = function(param1, param2, ...) { expression1; expression2; ...; }; と同等。
これだけ見ると function と書くのを => にしただけに見える。
引数が1個ならパラメータの括弧は省略できる。(個人的にはこれが見通しを悪くさせていると思う。絶対に省略すべきではないと思う。1個の時のみの特例になってしまっている。)
param1 => { expression1; expression2; ...; };
文1つならば処理側の括弧は省略できる。
f = (param1, param2, ...) => expression1;
return は省略できる。
f = (param1, param2) => param1 * param2;
ただし、this の取り扱い方が少し異なる。
アロー関数は、アロー関数が定義されたスコープでの this に束縛される。
function は、関数が呼び出されたスコープでの this になる。
何がうれしいのか?
クラスを this として持った関数を外部に渡す時